我正在尝试在我的 Angular 应用程序中使用 OAuth2 实现 Visual Studio Online REST API 授权。
为了方便 OAuth2 实现,我想使用 Satellizer 模块(https://github.com/sahat/satellizer/)。
这就是我配置的方式$authProvider
$authProvider.oauth2({
name: 'vso',
url: '/oauth/callback',
scope: ['vso.build_execute', 'vso.chat_manage', 'vso.code_manage', 'vso.packaging_manage', 'vso.project_manage', 'vso.release_execute', 'vso.work_write'],
scopeDelimiter: '%20',
state : 'ngApp',
defaultUrlParams: ['response_type', 'client_id', 'scope', 'redirect_uri', 'state'],
clientId: '{client_id}',
responseType: 'Assertion',
redirectUri: '{redirect_uri}',
authorizationEndpoint: 'https://app.vssps.visualstudio.com/oauth2/authorize',
});
现在,问题是我的应用程序只有 UI 路由器,我无法在我的 Visual Studio Online 门户上配置应用程序,使其重定向code
到state
UI 路由器/角度路由器样式回调 URL(即http: //站点名称/#/oauth/回调)。Visual Studio 不接受#
重定向 uri。
我无法打开 html5mode,因为我的用户可能会刷新页面并且应用程序会丢失状态。我不想配置后端以将此类请求重新路由到应用程序的根目录。
如何为 Visual Studio Team Services 实施 OAuth2.0 授权?