【问题标题】:Handle access token in angularJS在 angularJS 中处理访问令牌
【发布时间】:2015-08-20 07:53:24
【问题描述】:

我有 Web Api 和 AngularJS 来使用 Web Api。

当用户使用凭据登录时,用户获取 access_token 并使用已发布和过期字段刷新令牌。

access_token 每 1 分钟过期一次,并为用户分配新的令牌。

现在问题来了

令牌过期和新令牌分配给用户之间的时间。

如果用户进行页面刷新,那么它会进行 api 调用以加载该页面的数据,但访问令牌刚刚过期并且用户没有获得新令牌,因此旧令牌设置在 api 调用的标头中,因此用户得到401未授权作为响应和应用程序抛出用户注销。

我是第一次使用令牌,所以没有太多关于 access_token 和 refresh_token 的信息

所以,我不知道如何处理这种情况。

建议是可观的。

【问题讨论】:

  • 它很简单,只需在页面加载时进行令牌请求 api 调用,然后调用完成后,只需启动 Angular 应用程序
  • 这意味着每次用户重新加载页面时都会对令牌进行api调用,但我只想在用户重新加载页面并获得401状态码时分配新令牌。

标签: angularjs oauth-2.0 asp.net-web-api2


【解决方案1】:

每当您进行 API 调用以在页面上加载数据时,您都应该在 callback 中检查 status code。如果status code401,则获取refresh token,然后再次调用相同的API,然后只初始化应用程序。否则使用 old response 值初始化应用程序。

【讨论】:

  • get the refresh token 这意味着必须在 api 调用的标头中添加 refresh token
  • 这意味着您在标头中设置生成的新令牌并再次进行相同的 api 调用
  • 有什么方法可以给所有的api调用写回调函数,因为我不知道是哪个用户。编写一个 api 调用以在回调函数中获取令牌是个好主意吗?
【解决方案2】:

感谢@Kushal 和@sahil 提供想法。

当用户的令牌过期时,应用程序将它们重定向到登录页面,因此登录页面添加了 api 调用以通过用户的 refresh_token 获取令牌,如果用户具有正确的刷新令牌,则将它们分配给新令牌并重定向到用户通过跟踪刷新的页面 /维护用户当前页面的日志。及其工作。

再次感谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-15
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2014-10-30
    相关资源
    最近更新 更多