Аутентификация OAuth2 в приложении посредством Google Sign-In. Непрерывный доступ к API Google. Что такое oAuth? Как интегрировать Xamarin. Auth в мобильное приложение

Знали ли Вы, что используя Google , можно сделать на своем сайте регистрацию на сайте в один клик? Каждый, у кого есть аккаунт в Google, может просто нажать на кнопку, а скрипт автоматически загрузит в приложение e-mail, имя и фотографию.
Используя этот вариант входа/регистрации, вы создадите удобство для пользователей. Вот некоторые из преимуществ:

Не нужно делать проверку формы входа, и вообще создавать форму;

Нет необходимости в функции «Забыл пароль»;

E-Mail адресы уже подтверждены Google, поэтому вам не нужно высылать подтверждение.

Конечно, это будет работать, только если у человека есть аккаунт Google, поэтому имеет смысл сделать что-то в дополнение к этой системе регистрации.

Настройка приложения

Первый шаг заключается в создании приложения через консоль Google API . Следуйте инструкциям для получения дополнительной информации. После завершения процесса, разместить полученные ключи в setup.php.
Запуск кода из schema.sql (вы можете найти его в архиве скачать) в PhpMyAdmin или ином административном MySQL инструменте. Это создаст glogin_users таблицу в базе данных, которая будет использоваться для хранения информации об учетных записях пользователей вашего приложения. После этого, напишите свои данные подключения к базе данных в setup.php .

PHP

Для чтения и вставки в базу данных используется библиотека Idiorm . Будем создавать следующие PHP страницы:

index.php – главный файл приложения;

setup.php – соединение с базой данных и ключи выданные Google;

Папки библиотеки Idiorm, PHP библиотеки Google.

Давайте взглянем на код первой части index.php :

200?"200px":""+(this.scrollHeight+5)+"px");">require "setup.php";

// Create a new Google API client
$client = new apiClient();
//$client->setApplicationName("Tutorialzine");

// Configure it
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setDeveloperKey($api_key);
$client->setRedirectUri($redirect_url);
$client->setApprovalPrompt(false);
$oauth2 = new apiOauth2Service($client);

// The code parameter signifies that this is
// a redirect from google, bearing a temporary code
if (isset($_GET["code"])) {

// This method will obtain the actuall access token from Google,
// so we can request user info
$client->authenticate();

// Get the user data
$info = $oauth2->userinfo->get();

// Find this person in the database
$person = ORM::for_table("glogin_users")->where("email", $info["email"])->find_one();

If(!$person){
// No such person was found. Register!

$person = ORM::for_table("glogin_users")->create();

// Set the properties that are to be inserted in the db
$person->email = $info["email"];
$person->name = $info["name"];

If(isset($info["picture"])){
// If the user has set a public google account photo
$person->photo = $info["picture"];
}
else{
// otherwise use the default
$person->photo = "assets/img/default_avatar.jpg";
}

// insert the record to the database
$person->save();
}

// Save the user id to the session
$_SESSION["user_id"] = $person->id();

// Redirect to the base demo URL
header("Location: $redirect_url");
exit;
}

// Handle logout
if (isset($_GET["logout"])) {
unset($_SESSION["user_id"]);
}

$person = null;
if(isset($_SESSION["user_id"])){
// Fetch the person from the database
$person = ORM::for_table("glogin_users")->find_one($_SESSION["user_id"]);
}



HTML

Код HTML занимает нижнюю половину страницы index.php . После авторизации через Google сюда мы сможем выводить данные о пользователе. Сама страница является стандартным документом HTML5.


200?"200px":""+(this.scrollHeight+5)+"px");">



Google Powered Login Form | Tutorialzine Demo






Login Form




Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: