ASP.NET 5 Google 个 OAuth 登录名即将到期
ASP.NET 5 Google OAuth logins expiring
我已按照 MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on 上的步骤创建 Google OAuth 外部登录。
但是,我的用户登录有时会失效。他们必须使用密码登录到他们的帐户并删除,然后重新添加他们的外部登录才能再次使用。但是过一段时间又会失效
本教程是否有未涵盖的内容?为什么我的 Google 登录会过期?
编辑:我没有使用刷新令牌。我现在要求 "offline" 访问权限。我只需要在登录时进行沟通。
似乎以下代码在一段时间后为 Google 返回 NULL。
var loginInfo = await _authenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
原来这个问题与 OAuth 中间件和自定义会话状态提供程序有关。事实证明,如果没有会话 cookie,您将无法获得有效的 GetExternalLoginInfoAsync
结果。天知道它们之间有什么关系,但有一个简单的 hack 可以解决它。
OAuth 2 Owin not working StackExchange.Redis SessionState
我已按照 MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on 上的步骤创建 Google OAuth 外部登录。
但是,我的用户登录有时会失效。他们必须使用密码登录到他们的帐户并删除,然后重新添加他们的外部登录才能再次使用。但是过一段时间又会失效
本教程是否有未涵盖的内容?为什么我的 Google 登录会过期?
编辑:我没有使用刷新令牌。我现在要求 "offline" 访问权限。我只需要在登录时进行沟通。
似乎以下代码在一段时间后为 Google 返回 NULL。
var loginInfo = await _authenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
原来这个问题与 OAuth 中间件和自定义会话状态提供程序有关。事实证明,如果没有会话 cookie,您将无法获得有效的 GetExternalLoginInfoAsync
结果。天知道它们之间有什么关系,但有一个简单的 hack 可以解决它。
OAuth 2 Owin not working StackExchange.Redis SessionState