1

我将我的 Angular 应用程序重定向到 Spotify 登录 ( https://accounts.spotify.com/authorize ) 一旦他们登录,他们就会被重定向回http://localhost:4200/callback。此 URL 附加了一个令牌。但它立即重定向到(我希望它重定向到这里):

const appRoutes: Routes = [{ path: 'callback', redirectTo: '/host', pathMatch: 'full' }]

我如何/在哪里可以保留身份验证令牌而不将其放在用户 URL 中?

我意识到我最终也将需要 AuthGuards,但首先我想检索令牌。

4

2 回答 2

3

建议不要在路由配置中直接设置“redirectTo”。相反,添加一个回调组件来处理令牌和重定向。如下:

const appRoutes: Routes = [
    { path: 'callback', component: CallbackComponent }
]

在回调组件中

export class CallbackComponent implements OnInit {
    constructor(private route: ActivatedRoute, private router: Router) {}

    public ngOnInit():void {
        const token = this.route.snapshot.queryParamMap.get('token');
        // Handle token
        // ...
        this.router.navigate(['./host']);
    }
}
于 2020-04-09T04:44:21.663 回答
1

验证自动重定向不应在 app.component.ts 中处理,如果是,则通过警卫处理它,因为它负责重定向。

然后

constructor(private route: ActivatedRoute){}
  public ngOnInit():void {
        const token = this.route.snapshot.queryParamMap.get('token');
        // Handle token
        // ...
        this.router.navigate(['./host']);
    }
于 2020-04-09T05:49:28.657 回答