Я использую middlware Microsoft.Owin.Security.Google
(версия 3.0.1
), чтобы предоставить Google OAuth моему приложению.Google OAuth2 просит «автономный доступ»
Он настроен так:
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions
{
AuthenticationType = "Google",
Caption = "Google",
SignInAsAuthenticationType = signInAsType, // "idsrv.external"
ClientId = "xxx.apps.googleusercontent.com",
ClientSecret = "xxx"
});
Довольно простые вещи. Я использую IdentityServer как MW для выдачи претензий.
Когда я первый аутентификации пользователя с помощью Google, Google просит следующего согласия со стороны пользователя:
Что делает общий смысл, так как я с просьбой openid profile email
областей в URL:
https://accounts.google.com/o/oauth2/auth?scope=openid профиль электронной почты & response_type = код & redirect_uri = https://localhost:44301/core/signin-google&state=xxx&client_id=111.apps.googleusercontent.com&hl=en-GB&from_login=1&as=-25fb4219b2997893&authuser=0
Я тогда принимаю, и все работает хорошо.
Теперь, после того, как я выйти из системы, а затем повторно проверить еще раз - теперь на Google продолжает спрашивать меня для «автономного доступа»:
Я не просил автономной сферы доступа, так запутано почему Google просит об этом?
подтвердил URL выглядит отлично:
https://accounts.google.com/o/oauth2/auth?scope=openid профиль электронной почты & response_type = код & redirect_uri = https://localhost:44301/core/signin-google&state=xxx&client_id=111.apps.googleusercontent.com&hl=en-GB&from_login=1&as=676f55265a78c036&authuser=0
Так точно такой же URL, как первый запрос.
Я попытался:
- Включил Google+ API в консоли API
- Пробовал добавлять
&prompt=auto
(вызывает ошибку "недопустимое значение параметра для запроса: Invalid подсказка: авто") - Пробовал добавлять
access_type=online
(даже если это значение по умолчанию, если не указано). - Пытались добавляя
approval_prompt=auto
Ни один из этих методов работали.
Любые идеи?
У меня есть один и тот же опыт работы с Google и LOCALHOST –