我正在做一个网站与Angular ,我实现了firebase的sdk认证与其令牌通过电子邮件/密码.我们的目标是在用户关闭站点并在一周后重新打开时自动生成一个新的令牌,但我不知道要实现什么功能以及如何实现我尝试获取令牌并刷新令牌(我成功了),但我不知道使用什么功能来请求一个新的令牌,一旦它过期。我不能从firebase文档中理解。有人能帮助我吗?
wwtsj6pe1#
我找到了一个解决方案。在第一次用户登录后,我保存令牌和刷新令牌,然后在应用程序组件(构造函数中)中创建一个方法,检查本地存储中是否有刷新令牌。如果有刷新令牌,则我调用firebase API,它会向我返回新令牌和新刷新令牌。以下是该方法的示例:
//the method if (localStorage.getItem("refreshToken") != null) { console.log("refresh token not null"); var request = { grant_type: "refresh_token", refresh_token: localStorage.getItem("refreshToken") }; console.log("request..."); this.http.post<RefreshTokenResponse>("https://securetoken.googleapis.com/v1/token?key=[YOUR_KEY]", request) .subscribe(x => { console.log(x.access_token); localStorage.setItem("token", x.access_token) console.log(x.refresh_token); localStorage.setItem("refreshToken", x.refresh_token); }); } export interface RefreshTokenResponse{ access_token:string, refresh_token:string } export interface RefreshTokenRequest{ grant_type: string; refresh_token:string; }```
1条答案
按热度按时间wwtsj6pe1#
我找到了一个解决方案。在第一次用户登录后,我保存令牌和刷新令牌,然后在应用程序组件(构造函数中)中创建一个方法,检查本地存储中是否有刷新令牌。如果有刷新令牌,则我调用firebase API,它会向我返回新令牌和新刷新令牌。以下是该方法的示例: