更新承载令牌,而无需使用WIF再次注销和登录

  • 本文关键字:WIF 注销 登录 令牌 更新 wif
  • 更新时间 :
  • 英文 :


快速总结…下面是一个伪流程来展示我想要完成的内容…

客户端(angular) ->服务器(webapi/WIF)
使用用户名和pwd登录->验证登录凭据并返回带有声明的承载令牌
更改所选客户端->根据所选客户端发送带有更新声明的新承载令牌

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

更多细节…

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

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

我一直认为有一个"公共字符串ReturnNewBearerToken(AuthenticationTicket ticket)"函数在某个地方,让我得到一个新的令牌,并返回它作为一个字符串。但我在网上找遍了,找不到任何可以这样做的东西。我所看到的一切都表明,你必须退出并重新登录才能更新你的令牌,我无法相信这是真的。我不知道什么客户端用户想要访问应用程序,直到登录,但一旦他们登录我不能更新令牌?那将是一个陷阱。

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

答案在我上面的评论中。关键是这条线…

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

是我需要能够返回一个编码的票证作为承载令牌到我的angular应用。

相关内容

  • 没有找到相关文章

最新更新