2015-10-13 71 views
0

我已按照MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on上的步骤创建Google OAuth外部登录。ASP.NET 5 Google OAuth登录过期

但是,周期性地,我的用户登录不起作用。他们必须使用密码登录他们的帐户并删除,然后重新添加其外部登录信息才能再次使用。但是,在一段时间后它会再次失败。

本教程不包含的内容吗?为什么我的Google登录过期了?

编辑:我没有使用刷新令牌。我现在要求“离线”访问。我需要的只是登录时的通信。

似乎下面的代码在一段时间后对Google返回NULL。

var loginInfo = await _authenticationManager.GetExternalLoginInfoAsync(); 
if (loginInfo == null) 
{ 
    return RedirectToAction("Login"); 
} 
+0

[在MVC应用程序谷歌OAuth访问令牌过期?(可能的重复http://stackoverflow.com/questions/27678496/google-oauth-access-token-expiration-in-mvc-app ) –

+0

@StaffordWilliams,我不需要刷新令牌。我需要的只是在登录时访问他们的帐户。您链接的问题是关于离线访问的增量认证。 –

回答

0

这个问题竟然是与OAuth的中间件和自定义会话状态提供者。事实证明,如果没有会话cookie存在,您将无法获得有效的GetExternalLoginInfoAsync结果。上帝知道他们是如何相关的,但有一个简单的黑客来解决它。

OAuth 2 Owin not working StackExchange.Redis SessionState