Switched to Google Oauth2 for login.
Copy init.php.in to init.php Set database username, password Set $GoogleClientID and $GoogleClientSecret To get those: * Navigate to the Google Cloud Console. https://cloud.google.com/console * Click on the Create Project button on top of the page, enter the following values and then click on the Create button. * Once the project has been created, open the APIs & auth group (left navigation pannel) and then click on Consent screen and set it up (this is just for what is shown to the user, values not important) * Open the APIs & auth group in the left pannel (if it's not already open) and click on Credentials. * Click on the CREATE NEW CLIENT ID button, enter/tick the following values and then click on the Create Client ID button. Application type: Web Application Authorized Javascript origins: http://crash.replex.org Authorized redirect URI: http://crash.replex.org/process_login.php (replace with appropriate links. imporant bit is url to process_login.php) You will now have Client ID and Client secret
This commit is contained in:
103
htdocs/lib/GoogleLogin.php
Normal file
103
htdocs/lib/GoogleLogin.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/**
|
||||
* GoogleLogin.php
|
||||
* Helper for implementation of Google Oath2
|
||||
*
|
||||
* Description
|
||||
* @package Replex Crash Processor
|
||||
* @author Latif Khalifa <latifer@streamgrid.net>
|
||||
* @copyright Copyright © 2012-2014, Latif Khalifa
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files
|
||||
* (the "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||
* persons to whom the Software is furnished to do so, subject to the
|
||||
* following conditions:
|
||||
*
|
||||
* - The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class GoogleLogin
|
||||
{
|
||||
static $client = null;
|
||||
static $clientID;
|
||||
static $clientSecret;
|
||||
static $scope = "openid email";
|
||||
static $accessToken;
|
||||
|
||||
static function init($clientID, $clientSecret)
|
||||
{
|
||||
self::$clientID = $clientID;
|
||||
self::$clientSecret = $clientSecret;
|
||||
}
|
||||
|
||||
static function getClient()
|
||||
{
|
||||
if (self::$client == null)
|
||||
{
|
||||
$client = new Google_Client();
|
||||
$client->setClientId(self::$clientID);
|
||||
$client->setClientSecret(self::$clientSecret);
|
||||
$client->setRedirectUri(URL_ROOT . "/process_login.php" );
|
||||
$client->setScopes("email");
|
||||
self::$client = $client;
|
||||
}
|
||||
|
||||
return self::$client;
|
||||
}
|
||||
|
||||
static function loginURL()
|
||||
{
|
||||
$client = self::getClient();
|
||||
return $client->createAuthUrl();
|
||||
}
|
||||
|
||||
static function verifyLogin($code)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = self::getClient();
|
||||
$client->authenticate($code);
|
||||
self::$accessToken = $client->getAccessToken();
|
||||
return true;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static function getAttribs()
|
||||
{
|
||||
$client = self::getClient();
|
||||
$attr = $client->verifyIdToken()->getAttributes();
|
||||
return $attr["payload"];
|
||||
}
|
||||
|
||||
static function userID()
|
||||
{
|
||||
$attr = self::getAttribs();
|
||||
return $attr["sub"];
|
||||
}
|
||||
|
||||
static function userEmail()
|
||||
{
|
||||
$attr = self::getAttribs();
|
||||
return $attr["email"];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user