【问题标题】:okta and angular 8 authenticationokta 和 Angular 8 身份验证
【发布时间】:2021-01-11 21:41:54
【问题描述】:
我已经为 Angular 7 应用程序实现了 okta 身份验证。流程如下:
- 用户登陆登陆页面点击登录按钮
- 用户被重定向到 okta 登录
- 在 okta 中,我们有一个标志,用于检查用户是否为新用户或不称为“newUser”
- 登录后,okta 必须检查标志值,如果为 true,则路由到仪表板页面,如果为 false,则到表单页面。
okta 如何处理这种重定向?
【问题讨论】:
标签:
typescript
angular8
openid-connect
okta
【解决方案1】:
您可以创建自己的回调组件并将您的回调路由映射到它而不是 Okta 的。默认回调组件是here。里面的代码是:
import { Component, OnInit } from '@angular/core';
import { OktaAuthService } from '../services/okta.service';
@Component({
template: `<div>{{error}}</div>`
})
export class OktaCallbackComponent implements OnInit {
error: string;
constructor(private okta: OktaAuthService) {}
async ngOnInit() {
/**
* Handles the response from Okta and parses tokens.
*/
return this.okta.handleAuthentication()
.then(() => {
/**
* Navigate back to the saved uri, or root of application.
*/
const fromUri = this.okta.getFromUri();
// add custom logic here
window.location.replace(fromUri);
})
.catch(e => {
this.error = e.toString();
});
}
}