Я хочу реализовать логин с учетной записью Google с помощью OpenID, но я не знаю, как начать эту процедуру, потому что я понятия не имею, как это сделать. Итак, есть ли пошаговые инструкции для этого, чтобы я мог легко внедрить учетную запись учетной записи Google с помощью CodeIgniter в PHP.
Я нашел только это, но я не могу его правильно понять, есть ли какие-либо руководства или какие-либо библиотеки для входа в учетную запись Google?
Загрузите LightOpenID . Создайте login.php
и вставьте следующий код
<?php require_once 'openid.php'; $openid = new LightOpenID("my-domain.com"); if ($openid->mode) { if ($openid->mode == 'cancel') { echo "User has canceled authentication !"; } elseif ($openid->validate()) { $data = $openid->getAttributes(); $email = $data['contact/email']; $first = $data['namePerson/first']; echo "Identity : $openid->identity <br>"; echo "Email : $email <br>"; echo "First name : $first"; } else { echo "The user has not logged in"; } } else { echo "Go to index page to log in."; }
Создайте страницу index.php
и вставьте следующий код
<?php require_once 'openid.php'; $openid = new LightOpenID("my-domain.com"); $openid->identity = 'https://www.google.com/accounts/o8/id'; $openid->required = array( 'namePerson/first', 'namePerson/last', 'contact/email', ); $openid->returnUrl = 'http://my-domain.com/login.php' ?> <a href="<?php echo $openid->authUrl() ?>">Login with Google</a>
Это все, что вы сделали. Код, полученный из входа в Google с помощью LightOpenID
Сначала загрузите openid.php и поместите в свою корневую папку codeigniter.
1. скопируйте код и сохраните как …. / controller / logingoogle.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class LoginGoogle extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('login_model'); } public function index() { require_once 'openid.php'; $openid = new LightOpenID("localhost"); $openid->identity = 'https://www.google.com/accounts/o8/id'; $openid->required = array( 'namePerson/first', 'namePerson/last', 'contact/email', 'birthDate', 'person/gender', 'contact/postalCode/home', 'contact/country/home', 'pref/language', 'pref/timezone', ); // $openid->returnUrl = 'http://localhost/login_thirdparty/login_google.php'; $openid->returnUrl = 'http://localhost/login_thirdparty/codeigniterlogin/index.php/logingoogle/loginAuth'; // echo '<a href="'.$openid->authUrl().'">Login with Google</a>'; $data['openid'] = $openid; $this->load->view('googleLoginView', $data); } public function loginAuth() { $this->login_model->index(); } }
2. Скопируйте код и сохраните как …. / views / googleLoginView.php
<!DOCTYPE html> <html lang="en"> <head> <title>Login using google account</title> </head> <body> <a href = "<?php echo $openid->authUrl(); ?>" > Loging Using google account </a> </body> </html>
3. скопируйте код и сохраните как …. / models / login_model.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); require 'openid.php'; class Login_model extends CI_Model { public function index() { $openid = new LightOpenID("localhost"); if($openid->mode) { if($openid->mode == 'cancel') { echo "User has canceled authentication !"; } elseif($openid->validate()) { $data = $openid->getAttributes(); $email = $data['contact/email']; $first = $data['namePerson/first']; // header("Location: http://speechwithmilo.com/speechtherapy/adminpanel/"); echo "Identity : $openid->identity <br />"; echo "Email : $email <br />"; echo "First name : $first"; echo "<pre>"; print_r($data); echo "</pre>"; // echo "<meta http-equiv = 'refresh' content = '0; url=http://speechwithmilo.com/speechtherapy/adminpanel/'>"; } else { echo "The user has not logged in"; } } else { echo "Go to the login page to logged in"; } } }