首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msal和angular 4重定向Url

msal和angular 4重定向Url
EN

Stack Overflow用户
提问于 2017-10-09 18:19:16
回答 2查看 1.4K关注 0票数 6

我使用msal.js对用户进行身份验证。我正在成功获取令牌。在azure门户的redirectURl中,我将路径指定为"http://localhost:44340“。

我的app.routing模块如下所示:

代码语言:javascript
复制
 const routes: Routes = [
  { path: 'authentication', component: LoginComponent },
  { path: '', redirectTo: '/lists', pathMatch: 'full' , canActivate: [AuthenticationGuard] },
  { path: 'lists', component: ApplicationContainer ,  canActivate: [AuthenticationGuard]}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

我的问题是,当用户登录时,我确实得到了令牌,并且当redirecturi达到‘/list’时。我有个守卫。在防护内部,由于页面没有重定向,所以没有设置令牌值。这就是为什么它总是给出假的原因,我被重定向回登录页面。

EN

回答 2

Stack Overflow用户

发布于 2019-07-06 12:38:24

这可能与散列片段有关。

虽然不是Angular 4,但在我的例子中(旧的Angular JS -1.6app),我不得不更改$locationProvider并将哈希设置为空字符串,因为#片段干扰了Azure B2C AD返回的#id_token

如果使用Angular JS,请确保使用的是msal-angularjs包。

https://www.npmjs.com/package/@azure/msal-angularjs

这里有个注解:

注意:如果未配置HTML5模式,请确保将$locationProvider hashPrefix设置为空字符串

代码语言:javascript
复制
app.config(['$locationProvider', function($locationProvider) {
    $locationProvider.html5Mode(false).hashPrefix('');
}]);

如果不进行上述设置,AAD登录将无限期循环,因为AAD的回调URL (格式为{yourBaseUrl}/#{AADTokenAndState})将被重写,以删除导致令牌解析失败和登录序列再次发生的'#‘。

票数 0
EN

Stack Overflow用户

发布于 2019-02-14 02:02:45

推荐在GitHub上使用angular MSAL库示例实现:

代码语言:javascript
复制
npm install @azure/msal-angular --save
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46644118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档