2015-08-29 3 views
0

То, что я пытаюсь сделать, это разрешить кому-либо заходить на сайт и разрешать только зарегистрированным пользователям с разрешением разрешить запуск «Нажмите эту кнопку ...»Как я могу использовать Google oAuth 2.0?

Дело в том, что я очень не уверен как проверить, вошел ли пользователь в систему, и имеет законный токен для доступа к кнопке. Должен ли я хранить токен в браузере клиента и нажимать его на сервер при нажатии кнопки, это безопасно?

Должен ли я использовать PHP в этом случае?

Моя главная страница:

enter image description here

Javascript & AJAX:

var token; 
function onSignIn(googleUser) { 
var profile = googleUser.getBasicProfile(); 
token = googleUser.getAuthResponse().id_token; // should I store the token? 

var form = { 
"ID": profile.getId(), 
    "Name": profile.getName(), 
    "Email": profile.getEmail(), 
    "Image_URL": profile.getImageUrl(), 
} 
$.ajax({ 
    method: "POST", 
    url: "php/verification.php", // register account and save to db. 
    data: form, 
    dataType: "json", 
    success: function(data) { 
     console.log(data.result) 
    } 
}) 
} 

Я также очень расплывчато с документацией: https://developers.google.com/identity/sign-in/web/backend-auth

будет очень рад если кто-нибудь ку ld просветить мой путь и очистить мое разочарование.

ответ

0

Да, это рекомендуемый способ сделать это в документации, которую вы связали.

Поскольку вы используете PHP, вы проверите токен, используя Google's PHP SDK. Вот простой пример:

/* Create the client, and add your credentials */ 
$client = new Google_Client(); 
$client->setClientId('your_client_id'); 
$client->setClientSecret('your_client_secret'); 

/* Verify the token you received */ 
$ticket = $client->verifyIdToken($_POST['token']); 

/* Get the response details */ 
$data = $ticket->getAttributes(); 

/* Retrieve user's unique Google ID */ 
echo json_encode(['user_id' => $data['payload']['sub']]); 
Смежные вопросы