【发布时间】:2014-11-05 22:08:33
【问题描述】:
我有一个ASP.NET MVC 网站和一个Web API 2 项目。
我使用存储在身份声明中的不记名令牌来识别 API 上的用户。
它有效,但我注意到当我为 API 使用不同的服务器时,所有令牌都无效。
当令牌无效时(因为它是不同的服务器或因为它已过期),我对该怎么做感到困惑。
我们应该如何处理?
对于过期的令牌,我想我可以存储过期日期并要求一个新的令牌或实现OAuth2 Refresh Tokens。但是对于另一种情况,我不知道该怎么办。
谢谢
【问题讨论】:
-
machinekey用于加密/解密,因此如果服务器之间不同,则在解密令牌时将不匹配。因此,只需确保两台服务器中的 machinekey 值相同即可。 -
谢谢,我就是这么想的。那么换服务器应该怎么做呢?
-
如果我使用 Azure 或任何云托管,机器密钥会经常变化吗?
-
如果您使用相同的云服务,则机器密钥会在不同实例之间同步。所以 Azure 上没有与此相关的问题。我不确切知道 Azure 上的机器密钥何时会更改,但如果您保持相同的部署而不拆除整个服务,它应该保持不变。
-
@Horizon_Net 谢谢你的澄清
标签: asp.net-mvc asp.net-web-api2 bearer-token