Angular 8-如何从回调路由中的URL获取数据

时间:2020-02-07 10:36:12

标签: angular

如何从 keycloak 服务器获取对我的授权组件的访问令牌。 授权网址如下:

http://localhost:8081/auth/realms/external/protocol/openid-connect/auth?client_id=myapp&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fauth&response_type=token&scope=openid&nonce=test123

回调URL在http://localhost:4200/auth中,这里是组件:

import { Component, OnInit } from '@angular/core';
import {ActivatedRoute} from '@angular/router';

@Component({
selector: 'app-auth',
templateUrl: './auth.component.html',
styleUrls: ['./auth.component.scss']
})
export class AuthComponent implements OnInit {

constructor(private route: ActivatedRoute) { }

ngOnInit() {
    console.log(this.route.snapshot);
    console.log(this.route.snapshot);
}

}

成功登录后,将从 keycloak 返回access_token,如下所示:

http://localhost:4200/auth#access_token=qwerty123&session_time=123456789

我的问题是,如何使它工作并获得access_token。

1 个答案:

答案 0 :(得分:3)

以下应该可以工作

 this.route.queryParams.subscribe(params => {
      const accesToken = this.route.snapshot.fragment
        .split("&")[0]
        .replace("/", "")
        .split("=")[1];
    });