Проблема OpenId 2.0 в OpenId Connect Mapping

https://github.com/openid/php-openid

Это библиотека, которую мои бывшие коллеги используют для входа в Google, она будет возвращать идентификатор open_id из Google, мой коллега только сохранит этот идентификатор в базе данных для авторизации пользователей, Google объявит, что прекратит поддержку входа в систему openid до 2015/04/20 Предложите пользователям перейти на openid connect или любым другим способом, которым они предлагают, и у них есть инструкция по миграции.

https://developers.google.com/identity/protocols/OpenIDConnect

Часть кода

<?php

$id = '';
$secret = '';
$url = '';
$state = md5(rand());

if (isset($_GET['code']) === true) {
$authUrl = 'https://www.googleapis.com/oauth2/v3/token';
$fields = array(
'code'          => $_GET['code'],
'client_id'     => $id,
'client_secret' => $secret,
'redirect_uri'  => $url,
'grant_type'    => 'authorization_code',
);
$result = json_decode(Api::curl($authUrl, 'POST', $fields));
$accessToken = $result->access_token;
$idToken = $result->id_token;
$encodes = explode('.', $idToken);
$json = json_decode(base64_decode($encodes[1]));

foreach ($json as $key => $value) {
echo '<pre>'; var_dump($key . ': ' . $value); echo '</pre>';
}
} else {
$authUrl = "https://accounts.google.com/o/oauth2/auth?client_id={$id}&response_type=code&scope=openid%20email&redirect_uri={$url}&state={$state}&openid.realm={$url}";
Api::redirect($authUrl);
}

openid_id: https://www.google.com/accounts/o8/id?id=AItOawnryGxnJ0nA4Rq62G9nKCcQt_YsmXlqjxw

Я успешно получил идентификатор open_id, но он полностью отличается от идентификатора, который я регистрирую с помощью библиотеки open-id, и я обнаружил, что если я изменю идентификатор клиента, идентификатор open_id также будет другим, я был озадачен, если не смогу получить оригинал уникальный идентификатор open_id, что означает функция отображения и как выполнить миграцию.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]