我有一个 Service Fabric 项目,其中有一个无状态的 WebAPI 项目。创建新用户时,我们会生成一个令牌。我使用了 Identity 框架的 UserManager.GenerateUserToken 如下:
var inviteUserToken = await userManager.GenerateUserTokenAsync(user, "PasswordTokenProvider", "Password");
Run Code Online (Sandbox Code Playgroud)
我们通过邮件发送这个令牌,它会被重新发送到服务器进行验证。验证方法如下:
var verifyToken = await userManager.VerifyUserTokenAsync(user, "PasswordTokenProvider", "Password", inviteUserToken);
Run Code Online (Sandbox Code Playgroud)
现在我有两种环境:一种具有 1 节点集群,另一种具有 3 节点集群。一切都在 1 节点集群中完美运行。但是在 3 节点集群中,verify token 的行为是非常随机的。它有时有效,有时无法验证。
注意:两种环境完全相同,只是节点数量不同。