在MVC中我有自定义AuthorizeAttribute。因此,在此属性中,我使用cookie身份验证登录UserIdentity。在我的声明中,我有刷新令牌,如您所知,每次请求都会更改为API。
request.GetOwinContext().Authentication.SignIn(AuthProperties, identity);
因此,登录后我已使用特定的刷新令牌声明登录(例如' xxxxx')。我访问了一个具有CustomAuthorizeAttribute的Actions。在CustomAuthorizeAttribute中执行上面的代码。因此,我使用新身份和新刷新令牌声明登录(" yyyyyy")。但是当我尝试在Action中获得声明时,刷新令牌是旧的(" xxxxxx")。
[CustomAuthorize]
public ActionResult EditUser()
{
var userIdentity = this.User.Identity as ClaimsIdentity;
//here is the old one token
var refreshToken = userIdentity.Claims.FirstOrDefault(s => s.Type == "RefreshToken").Value;
return View("EditUser");
}
如何从索赔中获取最新令牌的任何想法。其他解决方法是将其保存在会话中我猜。