更新承载令牌而不注销并再次使用WIF

时间:2014-05-20 13:47:49

标签: wif

快速摘要......这是一个伪流程来展示我正在努力实现的目标......

客户(角度) - >服务器(webapi / WIF)
使用用户名和密码登录 - >验证登录凭证并返回带有声明的持票人令牌 更改所选客户 - >使用基于所选客户端的更新声明发送新的持票人令牌

  • 当更改选定的客户端时,当然会发送现有的承载令牌,因此服务器可以使用它来知道我是谁并验证我可以在生成新的承载令牌之前更改为所选客户端

更多细节......

我正在使用WIF生成的默认代码来记录用户并返回一个承载令牌,然后随着我的应用程序的每个请求(角度)发送。我用我的用户名和密码调用TOKEN端点,调用GrantResourceOwnerCredentials,验证用户身份,设置声明,并返回access_token。一切都很好。

这是我不知道如何处理的场景。当用户登录时,他们拥有分配给他们的默认客户端的声明。但是,他们可以在登录时随时更改他们正在访问的客户端,但每个客户端都有自己的一组声明,这意味着需要将一个承载令牌替换为所选客户端的一个。

我一直认为有一个“公共字符串ReturnNewBearerToken(AuthenticationTicket票证)”功能可以让我获得一个新的令牌并将其作为字符串返回。但是我已经在网上搜索过,找不到任何可以做到的事情。我见过的所有内容都表明您必须退出并重新登录才能更新您的令牌,我无法相信这种情况。在登录之前,我无法知道用户想要访问应用程序的客户端,但是一旦他们登录,我就无法更新令牌?这将是一个问题22。

那么,有没有人知道如何用WIF做到这一点?

1 个答案:

答案 0 :(得分:0)

答案在我上面的评论中。这句话就是......

var tokenStr = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);

是我需要能够将编码的票证作为持票人令牌返回到我的角度应用程序。