segunda-feira, 12 de dezembro de 2016

Como fazer login com GitHub OAuth utilizando PHP

Enviado em 15:51 - por Diguinho - Marcadores :

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.

Login with Google Account OAuth.


 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
)


Passo 1: Github nova aplicação
Registre nova aplicação em Aqui.
Login with Github OAuth PHP.

Passo 2: Criar aplicação no Github 
Enviar detalhes do seu site.
Login with Github OAuth PHP

Passo 3: Github OAuth Detalhes
Aqui a aplicação OAuth ID do cliente e cliente secreto .
Login with Github OAuth PHP

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

GitHub API Developer
Arun Kumar Sekar
Arun Kumar Sekar

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'
);
?>

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");
}
}
?>

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>
?>

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>";
}
?>

logout.php
Destruindo os dados da sessão do usuário GitHub.
<?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);
?>

Sobre o autor
Gabriel Medina é o autor deste blog, atualmente estuda eng. elétrica, ama jogar damas, assistir desenhos, filmes e séries, além de praticar esportes saudaveis.
Inscrever-se neste Blog via Email :

0 Comentários:

© 2017 Webzoon. Designed by Bloggertheme9
Powered by Blogger.
back to top