我正在使用Microsoft.Owin.Security.Google
(版本3.0.1
)middlware向我的應用提供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來發布索賠。
這非常有意義,因爲我在請求的URL openid profile email
範圍:
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爲什麼要這樣做?
確認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
(導致錯誤 「無效參數值用於提示:無效提示:汽車」) - 嘗試添加
access_type=online
(即使這是默認的,如果沒有提供)。 - 嘗試添加
approval_prompt=auto
沒有這些技術已經奏效。
任何想法?
我與谷歌相同的經驗和本地主機 –