FirebaseAuth, JWT от провайдера не содержит адрес электронной почты до вызова updateEmailUpdate - PullRequest
0 голосов
/ 31 января 2019

Я хочу включить адрес электронной почты в JWT от провайдера (Facebook), когда я звонил 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)
        }

    }

существует адрес электронной почты, как я могу включить адрес электронной почты в JWT, когда я позвонилgetIDToken() ???

1 Ответ

0 голосов
/ 31 января 2019

При входе через Facebook вы получаете объект providerData , прикрепленный к вашему пользовательскому объекту.В этом объекте данных провайдера вы найдете адрес электронной почты для пользователя.Причина, по которой вы не видите его в JWT при получении, заключается в том, что к пользователю Firebase не прикреплено никакого электронного письма.Когда вы затем вызываете updateEmail (), он обновляет пользователя Firebase этим электронным письмом, и тогда он будет в JWT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...