Alguns meses atrás eu tinha publicado um artigo sobre o login com o Twitter e Facebook. Nós desenvolvemos um sistema para entrada rápida com a conta do Google usando a autenticação OpenID. Este script ajuda a evitar formulários de registro e sistema de verificação de e-mail, É é muito rápido, útil e simples de integrar.
Baixar Script Demonstração ao vivo
Banco de dados
banco de dados exemplo usuários colunas da tabela id, e-mail, oauth_uid, oauth_provider e nome de usuário.
CREATE TABLE users
(
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(70),
oauth_uid int(11),
oauth_provider VARCHAR(100),
username VARCHAR(100)
);
(
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(70),
oauth_uid int(11),
oauth_provider VARCHAR(100),
username VARCHAR(100)
);
Neste tutorial vamos ter a estrutura de diretórios a seguir
google-open //Google LightOpenID library
config
-- functions.php
-- dbconfig.php //Database connection
index.php
home.php
getGoogleData.php //The Callback URL file
login-google.php
config
-- functions.php
-- dbconfig.php //Database connection
index.php
home.php
getGoogleData.php //The Callback URL file
login-google.php
dbconfig.php
arquivo de configuração de banco de dados.
<?php
define('DB_SERVER', 'dbserver');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
define('USERS_TABLE_NAME', 'users_table_name'); //Replace your users table name here
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error());
$database = mysql_select_db(DB_DATABASE) or die(mysql_error());
?>
define('DB_SERVER', 'dbserver');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
define('USERS_TABLE_NAME', 'users_table_name'); //Replace your users table name here
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error());
$database = mysql_select_db(DB_DATABASE) or die(mysql_error());
?>
login-google.php
No diretório raiz descobra a linha abaixo no código login-google.php e substituia yourdomain.com com seu próprio valor de domínio.
define('CALLBACK_URL', 'http://yourdomain.com/getGoogleData.php');
index.php
Se você deseja modificar suas páginas de login ou índice da Web, basta usar o seguinte código.
<?php
session_start();
if (isset($_SESSION['id'])) {
// Redirect to home page as we are already logged in
header("location: home.php");
}
if (array_key_exists("login", $_GET))
{
$oauth_provider = $_GET['oauth_provider'];
if ($oauth_provider == 'google')
{
header("Location: login-google.php");
}
}
?>
//HTML Code
<a href="?login&oauth_provider=google">Google Login</a>
session_start();
if (isset($_SESSION['id'])) {
// Redirect to home page as we are already logged in
header("location: home.php");
}
if (array_key_exists("login", $_GET))
{
$oauth_provider = $_GET['oauth_provider'];
if ($oauth_provider == 'google')
{
header("Location: login-google.php");
}
}
?>
//HTML Code
<a href="?login&oauth_provider=google">Google Login</a>
home.php
Na home page você pode exibir detalhes do usuário ao acessar variáveis de sessão.
Name: <?php $_SESSIONS['username'] >
Email: <?php $_SESSIONS['email'] >
Your are logged in with: <?php $_SESSIONS['oauth_provider'] >
<a href="logout.php?logout">Logout</a> from <?php $_SESSIONS['oauth_provider'] >
Se alguma dúvida por favor, comente aqui.
Email: <?php $_SESSIONS['email'] >
Your are logged in with: <?php $_SESSIONS['oauth_provider'] >
<a href="logout.php?logout">Logout</a> from <?php $_SESSIONS['oauth_provider'] >
0 Comentários:
Observação: somente um membro deste blog pode postar um comentário.