當用戶登錄到我們的服務使用外部的授權供應商,如谷歌或Facebook然後將用戶名存儲爲你在Auth0「名稱」字段的期望。但是,當用戶使用他們的電子郵件地址註冊時,他們的電子郵件地址存儲在「名稱」字段中。
我們希望用戶真實姓名始終位於「姓名」字段中,以便與其他第三方服務輕鬆集成。
研究
從文檔:https://auth0.com/docs/metadata
Auth0允許你存儲元數據,或與每個用戶是 不是來自身份提供數據。有兩種 元數據:
user_metadata:存儲用戶屬性(如用戶偏好), 不影響用戶的核心功能; app_metadata:存儲可能影響用戶核心功能的信息(如用戶的支持計劃,安全角色或訪問控制組),其中包括 應用程序的功能或用戶可以訪問的內容。
因此,我們可以將用戶名存儲在元數據中,然後在Auth0返回配置文件時檢索它。這並不理想,因爲它增加了不必要的複雜性。
從官方論壇中提出問題: https://auth0.com/forum/t/editing-user-name/2944
用戶問:
如果我存儲用戶Auth0的數據庫,是不是真的不可能 設置他們的真實世界的名字?它似乎只接受電子郵件 地址。
,並得到響應:
它可以存儲或任何其他信息在 app_metadata或user_metadata。您可以通過 修改此信息儀表板,規則或API: https://auth0.com/docs/api/management/v2#!/Users/patch_users_by_id
基本上,似乎沒有要在文檔中或對如何解決這一問題的論壇的任何地方。
我們終於想出了一個方法,讓用戶的真實姓名與用戶配置文件一起返回。如果遇到這個問題,我已經在這裏發佈了答案,讓其他開發人員的生活更輕鬆一些。
仍然在這是不可取的,因爲我們需要在用戶模型的根中設置用戶名,而不是在app_metadata或user_metadata中 – ANinJa