5

我的问题是我使用 auth0 作为我的身份验证服务,现在当用户登录并通过身份验证时,它会被重定向回我的回调 url,然后决定将用户发送到哪里现在我的问题是当你被重定向回你的回调来自 auth0 的 url 在 url 字符串中有 queryParams 像这样..

http://localhost:4200/account/login/callback#access_token="dsadsadsadsa dasdsaa"只是作为一个例子,但是在瞬间,查询字符串被删除,http://localhost:4200现在它的左边我试图使用这个方法来获取查询参数

this.activatedRoute.queryParams.subscribe(params => {
    console.log(params);
});

现在这应该可以工作,但是 console.log 每次都是一个空对象,我认为这是因为发生了 url 更改..

有什么方法可以在删除之前获取查询参数?

编辑

基本上发生的事情是我正在通过身份验证,然后我被重定向到

localhost:4200/account/login/callback?acessToken="dasdasdaefssves"

但随后路线更改为

localhost:4200/account/login/callback

activatedRoute在函数有机会运行之前没有查询参数!

任何帮助,将不胜感激!

4

2 回答 2

0

请注意您的重定向网址是http://localhost:4200/account/login/callback?access_token="dsadsadsadsa dasdsaa"

但有角度的路线localhost:4200/account/callback

笔记

您没有在 Angular 中定义/account/login/callback路由。但是你有/account/callback路由。Angular 尝试解析路由并将其重定向到/account/callback而不使用 queryParams。

以角度定义路线,您的问题将得到解决。

于 2018-05-17T06:27:21.283 回答
-1

我没有得到你的完整问题,但据我所知。您想从 URL 获取查询参数。

要从 URL 获取查询参数,您需要这样做。

 constructor(private activatedRoute: ActivatedRoute){}

这就是您可以从 URL 获取所有查询参数的方式。

this.activatedRoute.queryParamMap
                .map((params: Params) => params.params)
                .subscribe( (params) => {
                     if(params && params['access_token']){
                        console.log(params['access_token']);
                     }
                 });
于 2018-05-17T05:58:56.673 回答