使用OAuth2的ASP.NET Web API - 使用双因素身份验证时"记住此浏览器"

Sve*_*tøl 8 .net c# asp.net-mvc asp.net-web-api asp.net-identity

在ASP.NET MVC 5的默认模板中,可以选择在使用双因素身份验证登录时选择"记住此浏览器".

在ASP.NET MVC,这涉及配置app.UseTwoFactorRememberBrowserCookie();Startup.Auth.cs,然后使用SignInManager.TwoFactorSignInAsync()isPersistent: true

我想完成相同的操作,但使用ASP.NET Web API和OAuth2 Bearer Tokens.

即我希望用户能够注销(或自动注销).但是下次使用同一浏览器登录时,用户只需提供密码,而不是双因素身份验证.

如何使用OAuth2 Bearer Tokens实现此类行为?

Abb*_*iri 3

好吧,在我看来,这是客户端的问题,我想将您的问题改写为“在客户端存储身份验证令牌的最佳位置是什么?”

\n\n

您有几个选择:

\n\n
    \n
  1. HTML5 Web 存储(localStorage 或 sessionStorage)
  2. \n
  3. 饼干
  4. \n
\n\n

使用选项一,当选项卡/浏览器关闭时,令牌仍然有效,并且下次您会自动登录。

\n\n
$window.sessionStorage.setItem(\'userInfo-token\', \'tokenData\');\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用选项二,您可以将令牌保存到 cookie 中,并在您要向服务器发送请求时检索它。

\n\n

当然,这两个选项都有优点和缺点,有关更多信息,我建议您阅读Where to Store your JWT \xe2\x80\x93 Cookies vs HTML5 Web Storage

\n