Hoje em dia GitHub.com (serviço de hospedagem web) é a parte mais importante na vida do desenvolvedor. Neste post eu quero discutir como implementar sistema de login GitHub OAuth para o seu projeto web, isto é muito simples adotar e certeza de que irá ajuda-lo a aumentar suas inscrições de projetos web. Por favor, verifique os meus posts anteriores para Google, Facebook e Instagram OAuth scripts do sistema de login.
Download Script Live Demo
Database
Simples database design
CREATE TABLE users
(
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(50) UNIQUE,
fullname VARCHAR(100),
company VARCHAR(50),
blog VARCHAR(50),
location VARCHAR(50),
github_id VARCHAR(50),
github_username VARCHAR(50),
profile_image TEXT,
github_url TEXT
)
(
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(50) UNIQUE,
fullname VARCHAR(100),
company VARCHAR(50),
blog VARCHAR(50),
location VARCHAR(50),
github_id VARCHAR(50),
github_username VARCHAR(50),
profile_image TEXT,
github_url TEXT
)
Passo 1: Github nova aplicação
Registre nova aplicação em Aqui.
Passo 2: Criar aplicação no Github
Enviar detalhes do seu site.
Passo 3: Github OAuth Detalhes
Aqui a aplicação OAuth ID do cliente e cliente secreto .
O script contém uma pasta chamada Github_Lib com arquivos PHP.
Github_Lib
-- githubConfig.php // Github arquivo de configuração do aplicativo.
-- githubApi.php //Github OAuth API.
db.php //Database connection
github_login.php //Githut Login
index.php
home.php
logout.php
-- githubConfig.php // Github arquivo de configuração do aplicativo.
-- githubApi.php //Github OAuth API.
db.php //Database connection
github_login.php //Githut Login
index.php
home.php
logout.php
GitHub API Developer
Arun Kumar Sekar
Engineer, Plugin Expert
Chennai, INDIA
Engineer, Plugin Expert
Chennai, INDIA
githubConfig.php
Aqui modifique seu ID de cliente do aplicativo, segredo do cliente, redirecionar valores url e nome do aplicativo.
<?php
$config = array(
'client_id' => 'Your Client ID',
'client_secret' => 'Your Client Secret',
'redirect_url' => 'http://www.yourwebsite.com/github_login.php',
'app_name' => 'Your Application Name'
);
?>
$config = array(
'client_id' => 'Your Client ID',
'client_secret' => 'Your Client Secret',
'redirect_url' => 'http://www.yourwebsite.com/github_login.php',
'app_name' => 'Your Application Name'
);
?>
github_login.php
sistema de login GitHub OAuth, basta incluir o arquivo em index.php
<?php
require_once('Github_Lib/githubConfig.php');
require_once('Github_Lib/githubApi.php');
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['code']))
{
$git = new githubApi($config);
$git->getUserDetails();
$_SESSION['github_data']=$git->getAllUserDetails();
header("location: home.php");
}
else
{
$url = "https://github.com/login/oauth/authorize?client_id=".$config['client_id']."&redirect_uri=".$config['redirect_url']."&scope=user";
header("Location: $url");
}
}
?>
require_once('Github_Lib/githubConfig.php');
require_once('Github_Lib/githubApi.php');
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['code']))
{
$git = new githubApi($config);
$git->getUserDetails();
$_SESSION['github_data']=$git->getAllUserDetails();
header("location: home.php");
}
else
{
$url = "https://github.com/login/oauth/authorize?client_id=".$config['client_id']."&redirect_uri=".$config['redirect_url']."&scope=user";
header("Location: $url");
}
}
?>
index.php
Chame o sistema de login Github.
<?php
session_start();
if (isset($_SESSION['github_data'])) {
// Redirection to application home page.
header("location: home.php");
}
//HTML Code
<a href="github_login.php">Login with Github</a>
?>
session_start();
if (isset($_SESSION['github_data'])) {
// Redirection to application home page.
header("location: home.php");
}
//HTML Code
<a href="github_login.php">Login with Github</a>
?>
home.php
Contém código PHP inserir GitHub detalhes da sessão de usuário para usuários.
<?php
session_start();
include('db.php'); //Database Connection.
if (!isset($_SESSION['github_data'])) {
// Redirection to application index page.
header("location: index.php");
}
else
{
$userdata=$_SESSION['github_data'];
$email = $userdata->email;
$fullName = $userdata->name;
$company = $userdata->company;
$blog = $userdata->blog;
$location = $userdata->location;
$github_id = $userdata->id;
$github_username = $userdata->login;
$profile_image = $userdata->avatar_url;
$github_url = $userdata->url;
$q=mysqli_query($connection,"SELECT id FROM github_users WHERE email='$email'");
if(mysqli_num_rows($c) == 0)
{
$count=mysqli_query($connection,"INSERT INTO github_users(email,fullname,company,blog,location,github_id,github_username,profile_image,github_url) VALUES('$email','$fullName','$company','$blog','$location','$github_id','$github_username','$profile_image','$github_url')");
}
print_r($userdata); // Full data
echo "<a href='logout.php'>Logout</a>";
}
?>
session_start();
include('db.php'); //Database Connection.
if (!isset($_SESSION['github_data'])) {
// Redirection to application index page.
header("location: index.php");
}
else
{
$userdata=$_SESSION['github_data'];
$email = $userdata->email;
$fullName = $userdata->name;
$company = $userdata->company;
$blog = $userdata->blog;
$location = $userdata->location;
$github_id = $userdata->id;
$github_username = $userdata->login;
$profile_image = $userdata->avatar_url;
$github_url = $userdata->url;
$q=mysqli_query($connection,"SELECT id FROM github_users WHERE email='$email'");
if(mysqli_num_rows($c) == 0)
{
$count=mysqli_query($connection,"INSERT INTO github_users(email,fullname,company,blog,location,github_id,github_username,profile_image,github_url) VALUES('$email','$fullName','$company','$blog','$location','$github_id','$github_username','$profile_image','$github_url')");
}
print_r($userdata); // Full data
echo "<a href='logout.php'>Logout</a>";
}
?>
logout.php
Destruindo os dados da sessão do usuário GitHub.
<?php
session_start();
unset($_SESSION['github_data']);
header("Location: index.php");
?>
session_start();
unset($_SESSION['github_data']);
header("Location: index.php");
?>
db.php
arquivo de configuração de banco de dados, modifique valores de banco de dados, nome de usuário e senha.
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
$connection = @mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
$connection = @mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>
0 Comentários:
Observação: somente um membro deste blog pode postar um comentário.