在 ASP.NET MVC 5 的默认模板中,使用双因素身份验证登录时可以选择“记住此浏览器”。
在 ASP.NET MVC 中,这涉及在 Startup.Auth.cs
中配置 app.UseTwoFactorRememberBrowserCookie();
,然后使用 SignInManager.TwoFactorSignInAsync()
与 isPersistent: true
我想完成同样的事情,但使用 ASP.NET Web API 和 OAuth2 Bearer Tokens。
即我希望用户能够注销(或自动注销)。但下次使用同一浏览器登录时,用户只需提供密码,无需双重身份验证。
我将如何使用 OAuth2 Bearer Tokens 实现此类行为?
最佳答案
好吧,我认为这是客户端的问题,我想将您的问题改写为“在客户端存储身份验证 token 的最佳位置是什么?”
你有几个选择:
- HTML5 网络存储(localStorage 或 sessionStorage)
- cookies
使用选项一,当标签页/浏览器关闭时, token 仍然有效,下次您会自动登录。
$window.sessionStorage.setItem('userInfo-token', 'tokenData');
使用选项二,您可以将 token 保存到 cookie 中,并在您要向服务器发送请求时检索它。
当然这两种选择各有利弊,有关更多信息,我建议您阅读Where to Store your JWTs – Cookies vs HTML5 Web Storage
关于c# - 带有 OAuth2 的 ASP.NET Web API - 使用双因素身份验证时为 "Remember this browser",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003333/