使用自定义令牌的Firebase身份验证会提供null uid

时间:2016-01-19 11:09:06

标签: firebase jwt auth0

我使用Firebase的authWithCustomToken方法作为通过auth0委派的身份验证流程的一部分。

Auth0通过delegate call给我一个JWT,然后传递给authWithCustomToken。 Firebase告诉我auth成功并在authData下给了我一个值,但是这个值的空值为uid。 AFAIK,我的Firebase安全规则必须使用UID进行限制,因此似乎出现了问题。

这里是authData回复:

{ auth: { fb_id: 'auth0|555afce3f3066cf36f5ebd58' },
expires: 1453234943,
token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2ZyZWVmb3JtZXJzLmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHw1NTVhZmNlM2YzMDY2Y2YzNmY1ZWJkNTgiLCJhdWQiOiJQaEpNNzdmVjhVbnl5Rjc3REFKQzdOM1BPRnNoZTRVYSIsImV4cCI6MTQ1MzIzNDk0MywiaWF0IjoxNDUzMTk4OTQzLCJ2IjowLCJkIjp7ImZiX2lkIjoiYXV0aDB8NTU1YWZjZTNmMzA2NmNmMzZmNWViZDU4In0sImF6cCI6InJnZ3VBc1hkT25mY0NTT1FLcTdpU3F2cDRER1ZMQTVUIn0.87DmiUn0TY0G3kpPyiJoK6d-aTKsBNlfHBHbM4R4WMk',
uid: null,
provider: 'custom' }

1 个答案:

答案 0 :(得分:2)

当您致电self.reqparse.add_argument('domain',store='append', type = str, required = True, help = 'No domain given', location=('json','values')) ` 时,authWithCustomToken()变量恰好包含JWT中的信息。如果没有auth,可能是因为Auth0没有向令牌添加一个。

请注意,Firebase安全规则不会要求存在uid,只有一个很常见。但是,例如,这篇关于使用Firebase的auth0的博文不使用uid:https://www.firebase.com/blog/2014-06-05-auth0-guest-blog.html