让's suppose that we'重新使用OAuth承载令牌来保护我们的API . 有一个带有OWIN中间件的NuGet包可以为我们做到:https://www.nuget.org/packages/Microsoft.Owin.Security.OAuth .
Everethig看起来很棒,直到提出有关 access token expiration 的问题 - 我们不想强行使用一遍又一遍地重新登录 . 据我了解,有三种基本方法:
-
使访问令牌到期时间非常大(例如1个月)
-
使用OAuth刷新令牌会给身份验证服务器和用户应用程序代码带来很多困难(如下文所述http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/)
我很好奇是否有可能创建一个 endpoints ,该 endpoints 需要即将到期的访问令牌,只需使用新的访问令牌来模拟OAuth访问令牌的滑动过期类型?
1 回答
WARNING! 如果您不能100%确定您的应用程序保证(这是不可能的)访问令牌无法进行编译(例如,XSS漏洞允许窃取访问令牌),那么这就是 NO ONE SHOULD USE 的解决方案 . 在此解决方案中,一旦访问令牌泄露,它可用于延长访问时间 . OAuth刷新令牌正好解决了这个问题,在非常短的时间内(通常是大约15分钟)危及访问令牌的情况下限制访问 .