我使用 Firebase 的 authWithCustomToken
方法作为通过 auth0 的委托(delegate)身份验证流程的一部分。
Auth0 通过其 delegate
call 给了我一个 JWT ,然后我将其传递给 authWithCustomToken
。 Firebase 告诉我身份验证成功,并在 authData
下给了我一个值,但该值的 uid
为 null。 AFAIK,我的 Firebase 安全规则必须使用 UID 进行限制,所以似乎出了问题。
这是 authData
响应:
{ auth: { fb_id: 'auth0|555afce3f3066cf36f5ebd58' },
expires: 1453234943,
token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2ZyZWVmb3JtZXJzLmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHw1NTVhZmNlM2YzMDY2Y2YzNmY1ZWJkNTgiLCJhdWQiOiJQaEpNNzdmVjhVbnl5Rjc3REFKQzdOM1BPRnNoZTRVYSIsImV4cCI6MTQ1MzIzNDk0MywiaWF0IjoxNDUzMTk4OTQzLCJ2IjowLCJkIjp7ImZiX2lkIjoiYXV0aDB8NTU1YWZjZTNmMzA2NmNmMzZmNWViZDU4In0sImF6cCI6InJnZ3VBc1hkT25mY0NTT1FLcTdpU3F2cDRER1ZMQTVUIn0.87DmiUn0TY0G3kpPyiJoK6d-aTKsBNlfHBHbM4R4WMk',
uid: null,
provider: 'custom' }
最佳答案
当您调用 authWithCustomToken()
时,auth
变量准确包含 JWT 中的信息。如果没有 auth.uid
,可能是因为 Auth0 没有为 token 加一。
请注意,Firebase 安全规则并不要求存在 uid,只是拥有 uid 的情况很常见。但例如,这篇讨论 Firebase auth0 的博客文章不使用 uid:https://www.firebase.com/blog/2014-06-05-auth0-guest-blog.html
关于使用自定义 token 的 Firebase 身份验证给出 null uid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875209/