当我致电getIDToken()
在getIDToken()
之后我叫Auth.auth()signInAndRetrieveData()
时
JWT在解码时没有电子邮件地址信息
但是当我在getIDToken()
之后打电话给updateEmail()
时有一个电子邮件地址
func firebaseGetIDToken(completion: @escaping (_ idToken: String?, _ error: Error?) -> ()) {
let currentUser = Auth.auth().currentUser
currentUser?.updateEmail(to: "abcd@naver.com") { (error) in
print("update email \(String(describing:error?.localizedDescription))")
} <<-- there is no an email address without this code
currentUser?.getIDToken{ idToken, error in
if let error = error {
// Handle error
print("firebaseGetIDToken error ::: \(String(error.localizedDescription))")
completion(nil, error)
return;
}
completion(idToken, nil)
}
}
当我致电getIDToken()
时,如何在JWT中包含一个电子邮件地址?
答案 0 :(得分:0)
通过Facebook登录时,您将获得一个providerData对象附加到您的用户对象上。在此提供者数据对象中,您将找到该用户的电子邮件。您在检索JWT时未在JWT中看到它的原因是,没有电子邮件附加到 Firebase 用户。然后,当您调用updateEmail()时,它将使用该电子邮件更新Firebase用户,然后它将在JWT中