gpt4 book ai didi

angular - msal 和 angular 4 重定向 Url

转载 作者:太空狗 更新时间:2023-10-29 17:29:06 26 4
gpt4 key购买 nike

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

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

 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 { }

我的问题是当用户登录时我确实获得了 token ,当 redirecturi 到达“/lists”时。我有一个守卫。在守卫内部, token 值尚未设置,因为页面尚未重定向。这就是为什么它一直给出 false 并且我被重定向回登录页面的原因。

最佳答案

这可能与哈希片段有关。

虽然不是 Angular 4,但就我而言(旧的 Angular JS - 1.6 应用程序)我不得不更改 $locationProvider 并将散列设置为空字符串,因为 # 片段干扰了 Azure B2C AD 返回的 #id_token

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

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

那里有一个注释:

Note: When HTML5 mode is not configured, ensure the $locationProvider hashPrefix is set to an empty string

app.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false).hashPrefix('');
}]);

Without the above setting, AAD login will loop indefinitely as the callback URL from AAD (in the form of, {yourBaseUrl}/#{AADTokenAndState}) will be rewritten to remove the '#' causing the token parsing to fail and login sequence to occur again.

关于angular - msal 和 angular 4 重定向 Url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46644118/

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