我有Express-和Angular应用程序,具有“ password-facebook”策略来注册用户。
在Angular服务中,我称“ https://host/auth/facebook/”是通过模板中的按钮触发的:
服务代码摘录:
fbLogin() {
this.http
.get<{ token: string; expiresIn: number; userId: string, slug:string }>('https://host/auth/facebook/')
.subscribe(response => {
//save token to local storage, etc
...}
因此,单击按钮后,用户将被重定向到Facebook,在此他同意向应用程序授予某些访问权限,然后Facebook调用“ / facebook / callback”。
成功后,我将生成jwt令牌和其他一些元数据,并将其放入JSON中,然后将其发送到Angular以保存到本地存储中。
这样便生成了令牌,并将其传递回Angular并在浏览器窗口中显示为:
{name: "NewName",
email: "email@email.com",
token: "eyJhbGciOiJIUzfdI1NiIsInR5cCfdfI6IkpXVCJ9.eyJpZCI6IjViZjc0NTQ1YTRhMjdfI3NDI2ZGM5ZTYwYSIsIm5hbWUiOiJBbGVrc2fdfFuZHIiLCJzbHVnIjoiYWxla3NhbmRyLTZwdWpnZyIsImV4cCI6MTU0ODI1MjM0NywiaWF0IjoxNfdfTQzMDY4MzQ3fQfdf.nfZHE_IFT-Eaa2u_GXUFkVKkChT7Faqsyh_2x2g-ix4",
expiresIn: 3600,
userId: "5bf74545a4afdfd227426dc9e60a",
}
以及重定向到“ https://host/api/auth/facebook/callback?code=AQA32HfWnlDCT ....”
但是我需要在调用“ https://host/auth/facebook/”后将其保存在Angular Service中,但我没有它,因为Facebook调用的是“ auth / facebook / callback”而不是Angular应用。 / p>
一个类似的问题在这里: how to handle passport-facebook callback in angular client?,答案是关于在Express中重定向到另一个端点,但是即使这样做,在Angular中如何处理它也不清楚。
请告知如何处理。