Моя интеграция для этого вопроса основана на PHP, и я объясню это для контекста, хотя этот вопрос должен применяться и к не PHP стекам, использующим Google Sign-In.
Я интегрирую форму входа в Google в пользовательское приложение PHP для многих пользователей, использующих пакет composer league / oauth2-google:
https://github.com/thephpleague/oauth2-google
I Я могу запустить следующее, чтобы получить эту информацию API из настроенной мной учетной записи API Google после перенаправления со страницы входа в систему Google в моем приложении, где пользователь предоставил Google свои учетные данные:
$token = $this->provider->getAccessToken('authorization_code', [
'code' => $_GET['code']
]);
// We got an access token, let's now get the owner details
$ownerDetails = $this->provider->getResourceOwner($token)->toArray();
dump($ownerDetails);
dump($token);
Что выводит следующее:
array:9 [▼
"sub" => "12345678901234567890"
"name" => "John Doe"
"given_name" => "John"
"family_name" => "Doe"
"picture" => "https://lh3.googleusercontent.com/a-/example"
"email" => "jdoe@example.com"
"email_verified" => true
"locale" => "en"
"hd" => "example.com"
]
AccessToken {#215 ▼
#accessToken: "example-token"
#expires: 1586293521
#refreshToken: null
#resourceOwnerId: null
#values: array:3 [▼
"scope" => "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email openid"
"token_type" => "Bearer"
"id_token" => "example-token"
]
}
Документация Google гласит использовать дополнительный номер для идентификации пользователей. Например, здесь:
https://youtu.be/j_31hJtWjlw?t=60
Приложение, над которым я работаю, использует имена пользователей для идентификации пользователей. У нас также есть электронные письма пользователя, но нет никакой гарантии, что все они ссылаются на учетную запись Google пользователя.
Когда пользователь входит в приложение с помощью входа в Google, как я должен сопоставить информацию из API Google к информации в приложении? Мне было бы интересно узнать, каков типичный процесс для этого (если таковой имеется), или хотя бы понять хороший способ справиться с этим?
У нас есть большая база существующих пользователей, которые хотели бы переключиться на использование логинов на основе Google. Есть ли в учетной записи пользователя место, где они могут получить дополнительный номер, и я могу позволить им вставить его в форму в моем приложении, чтобы предоставить этим пользователям доступ через Google Sign-In?