Предполагая, что вы вошли:
https://www.googleapis.com/auth/userinfo.email
в ваших OAuth областей, вы можете сделать запрос по адресу:
https://www.googleapis.com/oauth2/v2/userinfo
Если это аккаунт Служб Google, параметр "HD" (Hosted домен?) будет возвращен вызовом в домене Google Apps, поскольку это значение. Если это учетная запись пользователя, будь то @ gmail.com или даже потенциальная «конфликтующая учетная запись», параметр hd не будет возвращен. См. Мой пример ниже. [email protected] является учетной записью Google Apps, а [email protected] - это учетная запись пользователя. Если бы я создал пользователя-пользователя в домене Google Apps, он стал бы конфликтующей учетной записью, и потребительский аккаунт был бы вытеснен из пространства имен @ jay.powerposters.org, но этого еще не произошло.
Для [email protected]:
GET https://www.googleapis.com/oauth2/v2/userinfo
HTTP/1.1 200 OK
Content-length: 99
X-xss-protection: 1; mode=block
...
{
"email": "[email protected]",
"verified_email": true,
"hd": "jay.powerposters.org"
}
Для [email protected]:
GET https://www.googleapis.com/oauth2/v2/userinfo
HTTP/1.1 200 OK
Content-length: 71
X-xss-protection: 1; mode=block
{
"email": "[email protected]",
"verified_email": true
}
Спасибо. Я подумал об этом, но это было очень грубо. Поэтому я подумал, есть ли другой способ. Также было другое соображение, что (whatif) меня попросили переключиться на аутентификацию OAuth. Поэтому я рассматривал способы определения этого из api. –
На самом деле это не совсем так. Можно открыть учетную запись Google с любым существующим электронным письмом. Например, у меня есть учетная запись, которая является @ free.fr, которая не является доменом Google Apps. – Nivco