【发布时间】:2019-07-22 19:10:01
【问题描述】:
我用这样的 url 参数配置了包含 url 的状态:url:route/:id1/:id2:id3 with ADAL js。当我用route/1/2/3 访问url 时,登录后,我被重定向到route/:id1/:id2/:id3?id1=1&id2=2&id3=3 而不是route/1/2/3。
我进一步调查,在 adal-angular.js 文件中,我们使用 $location.url().search(jsonParameters) 设置浏览器 url,其中 jsonParameters 是值为 {id1:1, id2:2, id3:3} 的 json 对象,这导致了 url 格式错误。
你们能指出我如何解决这个问题并重定向到正确的网址吗?
编辑:添加代码示例
我已经配置了如下指定的 AAD 路由:
$stateProvider
.state('State1', {
templateUrl: getViewUrl('viewUrl'),
controller: 'homeController',
controllerAs: 'home',
url: '/route/:id1/:id2/:id3',
requireADLogin: true
})
我正在通过以下方式初始化 adal 服务提供者:
$locationProvider.html5Mode(false);
var endpoints = {}
endpoints[EnvironmentConfig.url1] = EnvironmentConfig.url1;
endpoints[EnvironmentConfig.url2] = EnvironmentConfig.url2;
adalAuthenticationServiceProvider.init(
{
instance: EnvironmentConfig.aadUrl, // 'https://login.microsoftonline.com/',
tenant: EnvironmentConfig.tenant, // 'microsoft.onmicrosoft.com',
clientId: EnvironmentConfig.clientId,
endpoints: endpoints,
loginResource: EnvironmentConfig.breServiceADUrl
//cacheLocation: 'localStorage', // enable this for IE, as sessionStorage does not work for localhost.
}, $httpProvider);
谢谢。
【问题讨论】:
-
我无法重现此问题。您是如何在 adal-angular.js 中设置浏览器 URL 的?
-
@FeiXue-MSFT,已将我的 Web 应用程序配置为通过 adal-angular.js 使用 Azure AD 登录。所以我用状态提供者定义了这个 url 以及 requireADLogin:true。
-
我还通过
$routeProvider添加了requireADLogin: true,但仍然无法重现此问题。你混合了 ui-router 和 ngRoute 吗?如果您可以提供代码示例来重现此问题,将会很有帮助。 -
嗨@FeiXue-MSFT,我添加了adal服务提供者的示例状态声明和初始化以供参考。我正在使用 1.0.10 版本的 ADAL.js。
-
帖子中的代码对您有用吗?
标签: angularjs angular-ui-router adal.js