昨日書いた Auth0 の Lock に氏名欄を追加してみた を Twitter に投げたら、中の人から改善案をもらえました!
実は、パラメーターにstorage: "root"を追加するとルールなしで行けるかなと思います。https://t.co/5K4Ptuce6Q
— 𝑇𝑤𝑘 (@twk) April 9, 2020
とのことなので早速試してみました。
ユニバーサルログイン変更
Universal Login
- Login
- Customzize Login Page
オン。
氏名の入力欄に storage: "root"
を追加。
var options = { additionalSignUpFields: [ { name: "family_name", placeholder: "Enter your family name", storage: "root" }, { name: "given_name", placeholder: "Enter your given name", storage: "root" } ] }
Rules の拡張取り消し
Rules
で作ったルールをオフにする。
結果
こうすると user.user_metadata
に追加されてたのが、当初想定していた user.family_name
に保存されるようです。
ご教示いただいた GitHub にちゃんと書いてますね。
If you want to save the value of the attribute in the root of your profile, use storage: 'root'. Only a subset of values can be stored this way. The list of attributes that can be added to your root profile is here. By default, every additional sign up field is stored inside the user_metadata object.
直接 user
に保存できる項目は ここ 。
Rules の設定をオフにしても、無事に token に追加されることが確認できました。 直接サポートありがとうございました。 GitHub の README もうちょっと読もう...