2
我正在使用Firebase的authWithCustomToken
方法作爲通過auth0的委託身份驗證流程的一部分。具有自定義標記的Firebase身份驗證會給出null用戶ID
Auth0通過其delegate
call給我一個智威湯遜,然後我通過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' }
當您調用authWithCustomToken時,auth變量恰好包含JWT中的信息。您是否檢查以確保Auth0生成的JWT中存在「uid」屬性?另請注意,Firebase安全規則不要求*存在「uid」,這只是非常常見的。但是舉個例子,這篇關於使用Firebase的auth0的博客文章並沒有使用'uid':https://www.firebase.com/blog/2014-06-05-auth0-guest-blog.html –
只是一個快速澄清問題:您是否自己實施Firebase/Auth0連接?如果是這樣,可能[將Firebase作爲Auth0插件實施](https://auth0.com/docs/server-apis/firebase)可能解決您的問題? 如果沒有,請告訴我,我很樂意仔細查看您的實施情況。 –
@FrankvanPuffelen - 就是這樣!我沒有想到,uid只是一個慣例。爲了理智,儘管我現在已經在智威湯遜擁有auth0軟件包了。 @KassandraPerch - 這就是我所做的,默認情況下,你只在JWT中獲得'fb_id'。 –