首页 文章

从redirect angular 5获取查询参数

提问于
浏览
1

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

http://localhost:4200/account/login/callback#access_token="dsadsadsadsa dasdsaa" 仅作为示例,但是在一瞬间,查询字符串被删除,它的左侧在 http://localhost:4200 现在我试图使用此方法获取查询Params

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

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

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

EDIT

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

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

但随后路线变为

localhost:4200/account/login/callback

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

任何帮助,将不胜感激!

2 回答

  • 0

    请注意您的redirect-url是 http://localhost:4200/account/login/callback?access_token="dsadsadsadsa dasdsaa"

    但角度路线它 localhost:4200/account/callback

    NOTE

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

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

  • -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']);
                         }
                     });
    

相关问题