gpt4 book ai didi

AngularJS ui-router 与 OAuth2 access_token 冲突

转载 作者:行者123 更新时间:2023-12-04 15:10:56 27 4
gpt4 key购买 nike

我有一个使用 ui-router 在 AngularJS 中开发的前端。要从后端使用 REST API,我需要获取 OAuth2 访问 token (隐式授权)。

我的问题在于 OAuth 舞蹈的最后一步,当我从 url 中的身份验证服务器获取访问 token 时

mydomain.com/home/#access_token=hdzjkdnba89fenbjkéz38U0D903ç&...
mydomain.com/home显然是重定向URI。

重定向后仅几分之一秒,AngularJS 就会以类似方式更改 URL
mydomain.com/#/my-default-view

因此访问 token 将从 URL 中删除。

现在有几点:
  • 我不允许为我的 OAuth2 客户端定义包含散列 ('#') 的重定向 URI。因此类似 mydomain.com/#/auth-complete/不是 没事。
  • 我用 $routeProvider.otherwise('/') .
  • 我试图设置 $locationProvider.html5Mode(true);删除中间的“#”,但问题是相同的(重定向后立即删除 URL 和访问 token )。
  • 由于即使在 Angular 修改了 URL 之后,访问 token 仍然可以在 HTTP 响应中访问,我可能会使用 $http拦截器,但这对于这项常见任务来说听起来有点太多了,不是吗?

  • 有什么建议吗?

    最佳答案

    这个对我有用,谷歌作为客户端应用程序的 OAuth2 提供者:

    $urlRouterProvider.otherwise('/');

    $stateProvider.state('access_token', {
    url: '/access_token={accessToken}&token_type={tokenType}&expires_in={expiresIn}',
    template: '',
    controller: function($stateParams) {
    var token = $stateParams.accessToken;
    // do something usefull with token
    }
    })

    关于AngularJS ui-router 与 OAuth2 access_token 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942303/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com