.net 是否可以在OWIN中续订访问令牌
我正在寻找一种方法,使用OWIN在.NET API应用程序中新建访问令牌声明。我正在读这篇文章,我读到可以使用刷新令牌 这个问题的背景如下。我想在acces_令牌的声明中存储一些信息,这些信息可以通过用户的操作进行更新。例如,用户名存储在声明中。用户决定更新其用户名。是否可以更新索赔.net 是否可以在OWIN中续订访问令牌,.net,oauth,owin,.net,Oauth,Owin,我正在寻找一种方法,使用OWIN在.NET API应用程序中新建访问令牌声明。我正在读这篇文章,我读到可以使用刷新令牌 这个问题的背景如下。我想在acces_令牌的声明中存储一些信息,这些信息可以通过用户的操作进行更新。例如,用户名存储在声明中。用户决定更新其用户名。是否可以更新索赔 但我在任何地方都找不到一个好的例子。在不破坏应用程序安全性的情况下,这是可能的吗?我认为这是不可能的。Oauth令牌一旦创建就不能修改,因为修改会导致签名无效(这是一件好事) 消费应用程序需要更新令牌(重新认证、使
但我在任何地方都找不到一个好的例子。在不破坏应用程序安全性的情况下,这是可能的吗?我认为这是不可能的。Oauth令牌一旦创建就不能修改,因为修改会导致签名无效(这是一件好事) 消费应用程序需要更新令牌(重新认证、使用刷新令牌等),如果消费应用程序和API在您的控制下,这是可能实现的,否则这可能不是对API使用者施加的实际限制 另一种方法是避免在访问令牌中存储可更改的声明,而是在接收到请求时使用附加声明填充从访问令牌中获取的ClaimSideEntity对象(在IPrincipal中)。这将允许您更新API中的值,但也不要求您的消费者在每次声明需要更改时获得新的访问令牌。缺点是您需要在每个请求上加载声明。您还需要在访问令牌中有一个值,该值保证能够识别无法更改的用户 您可以使用OwinMiddleware类来实现这一点:
public override async Task Invoke(IOwinContext context)
{
ClaimsIdentity identity = context.Authentication.User?.Identity as ClaimsIdentity;
identity.AddClaims(new Claim("Name", "Value));
}
如果您指的是身份验证令牌,则可以生成owin令牌并以编程方式覆盖cookie。stackoverflow中有关于令牌生成的帖子。