使用自定义 token 的 Firebase 身份验证给出 null uid

标签 firebase jwt auth0

我使用 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/

相关文章:

java - 如何用UTC过期时间验证JWT?

python - flask-jwt 如何处理 token ?

java - Firebase RecyclerView - 如何只显示过滤后的数据?

java - DataSnapshot 子级返回 null

java - Firestore 需要双嵌套表

javascript - Passportjs jwt,客户端响应未经过身份验证

ios - Remote Config A/B Test 不在 iOS 上提供结果

single-sign-on - 如何让两个单独的 SAML 应用程序在不登录两次的情况下登录到 IdP?

go - 在 jwt-go 中解析 JWT Auth token 时, key 类型无效

security - 何时为 oauth2 流中的非交互式客户端请求新的 access_token?