Firebase身份验证:无法使用刷新令牌REST获得新令牌

时间:2020-04-22 11:30:30

标签: firebase google-chrome google-api firebase-authentication cors

我接下来要从刷新令牌中获取令牌:https://firebase.google.com/docs/reference/rest/auth/#section-refresh-token

  let response = await axios.post(`https://securetoken.googleapis.com/v1/token?key=${FIREBASE_CONFIG.apiKey}&grant_type=refresh_token&refresh_token=${refreshToken}`,
    {}, {
      data: qs,
      headers: { "content-type": "application/x-www-form-urlencoded" }
    }
  );

它过去曾在起作用,但现在却不起作用。 在Chrome控制台中出现此错误:

从原点“ https://securetoken.googleapis.com/v1/token?key=”开始对“ http://localhost:8080&grant_type = refresh_token&refresh_token =”处的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否“访问Control-Allow-Origin'标头出现在请求的资源上。

enter image description here

2 个答案:

答案 0 :(得分:0)

sideshowbarker是正确的,axios实例的确只有几个HTTP标头可用于其他目的。使用干净的axios实例后,错误消失了。不过,从googleapis返回的错误可能会更加不言自明

答案 1 :(得分:0)

我最近看到了你的问题。 也许我的以下建议会有所帮助

const url : string = `https://securetoken.googleapis.com/v1/token?key=${environment.apiKey}`;
    
const body : any = {
    grant_type : 'refresh_token',
    refresh_token : this.userValue.refresh_token
}
    
return this.http.post<any>(url, body, {withCredentials : false});

致谢