如何获取Authorization及Token URL?Firebase稳定用户ID获取问题
嘿,我来帮你梳理这两个问题的解决方案,都是开发中实际踩过的坑,应该能帮到你:
一、如何获取Authorization和Token URL?
这俩参数完全取决于你用的身份认证服务,我分最常见的两种情况给你说:
- 如果是用Firebase Auth:
- Token URL:Firebase官方的Token端点是
https://securetoken.googleapis.com/v1/token,你也可以去Firebase控制台的「项目设置」→「服务账号」板块,找到对应的配置信息确认。 - Authorization:这里一般指的是ID Token或者Access Token。前端的话,直接调用
firebase.auth().currentUser.getIdToken()就能拿到当前用户的ID Token;后端服务要获取的话,得用服务账号密钥去调用上面的Token端点换取。
- Token URL:Firebase官方的Token端点是
- 如果是自定义OAuth2服务:
- Token URL都是由服务方明确提供的,比如GitHub的是
https://github.com/login/oauth/access_token,你得去对应服务的开发者文档里找这个地址。 - Authorization头通常是
Bearer {token}的格式,这里的token是你通过授权流程(比如授权码模式)拿到的访问令牌。
- Token URL都是由服务方明确提供的,比如GitHub的是
二、Firebase用户ID稳定性的问题,你可能搞混了概念!
你提到的getUser().userId应该是把临时的Token信息和永久的用户UID搞混了——Firebase Auth的用户UID是永久不变的,不管过多少天、换多少设备,这个ID都不会变!
给你明确区分下:
firebase.auth().currentUser.uid:这才是用户的唯一永久标识,一旦用户创建账号,这个UID就固定了,哪怕用户重置密码、换手机登录,都不会改变。- 你说的30天后会变的,应该是ID Token——这是短期有效的身份凭证(默认有效期1小时),需要定期刷新,但它只是用来验证用户身份的临时令牌,不能用来做用户数据的关联标识。
所以你的代码应该改成这样:
const userId = firebase.auth().currentUser.uid;
用这个UID来关联Firebase里的作业、词汇内容就没问题了,比如把数据存在/users/{uid}/assignments或者/users/{uid}/vocab这样的路径下,既符合Firebase的最佳实践,又能保证用户数据的稳定关联。
另外,恭喜你独立开发的代理工具快完成了!把这个UID的问题搞定后,Firebase存储功能应该就能顺利收尾啦。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

