转动Firebase' idToken'进入'访问令牌'没有后端?

时间:2017-08-18 08:57:41

标签: rest firebase firebase-realtime-database firebase-authentication

我尝试通过调用以下方式创建匿名用户来使用Firebase REST API:

https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=[API_KEY]

没有问题,响应(修改它以保密):

{
 "kind": "identitytoolkit#SignupNewUserResponse",
 "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjM0NTBiMGJhOWUzMTcyMmUwOTBlZDIxMzViY2RiN2MxNzdhMzJmMjcifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vZmlzaGluYy1hcHAiLCJwcm92aWRlcl9pZCI6ImFub255bW91cyIsImL1ZCI6ImZpc2hpbmMtYXBwIiwiYXV0aF90aW1lIjoxNTAzMDQ1NjY4LCJ1c2VyX2lkIjoiQ2hKRUJ3Vk5HeVA0NmtEQzA3d1VKMUJ3Y3Q3MyIsInN1YiI6IkNoSkVCd1ZOR3lQNDZrRENwN3dVSjFCd2N0NzMiLCJpYXQiOjE1MDMwNDU2NjgsImV4cCI6MTUwMzA0OTI2OCwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6e30sInNpZ25faW5fcHJvdmlkZXIiOiJhbm9ueW1vdXMifX0.jdMuPVGvMT6qZoxynpGMqURqg9zrVbPl1kXxmbHoglGgi9u1HHwQft5hhKIS3QbS87-rr5BcEitCu5seHcDlWl3rzEx87fctHmY4z-vDqUUKIqjKHfB0q04SbzBKVUvuUg9O-ACWMDLWFZ54U4ALK7kFdlBti3600kqw_4-UGURa2jIPpOse9f8HIz_qGaO_5kptjO6v4drLhY6PPH_h1kO4p1DITWt6pfdn_E_tAqXZgsCK3iKhu4bYUc2DgiUfR7q3dfzravQyz2nrpDN6S3Z_NdzxiKRuyasPr7kpeqxGaAPCYX84P_GL6r-EEFCcVeouRukRvloRpoezOSkeRg",
 "refreshToken": "APRrRCIqIUK5BiJIjpIt-ZtSdvn6ybONtTccCPOzIWAxg9qsClqdR82vqYmb0TMS1xngpCvlbIzgTSDTycvSoSYgua1r-6RlAt83Z2jXKTAnGalAHQLsC_gpUeF7js9PWl8O8PP5KF64coel22pgysd39QwC2Z2yf6zJj7xoozF0eaLjmkyvzqs",
 "expiresIn": "3600",
 "localId": "ChJEBwVNGyP46kDC07wUJ1Bwct73"
}

我的印象是,我现在已经获得了一个" authed" /登录用户。并且我可以使用idToken从Realtime DB读取数据(假设只有用户被刷新的规则)。

但这似乎并非如此(收到"未经授权的请求。"),或者我错过了什么。谷歌搜索后似乎我需要一个自定义后端来转换"将idToken转换为访问令牌。这是对的吗?

1 个答案:

答案 0 :(得分:2)

唔。文档似乎有点令人困惑,它说:

  

所有请求类型都支持。验证此请求以允许   访问受Firebase实时数据库规则保护的数据。见   REST身份验证文档以获取详细信息。

     

卷曲   'https://[PROJECT_ID].firebaseio/users/jack/name.json?access_token=CREDENTIAL'

但使用access_token参数是错误的(至少在我的情况下),我需要使用“auth”。

所以这会奏效:

curl 'https://[PROJECT_ID].firebaseio/users/jack/name.json?auth=myIdTokenHere'