我正在尝试使用Linkedin和Firebase登录。我在我的服务器上生成自定义令牌,我有我的私钥,我使用RS256,这是我的有效载荷:
"iss" : service_account_email
"sub" : service_account_email
"aud", "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit"
"iat", Date().timeIntervalSince1970
"exp", Date().timeIntervalSince1970.advanced(by: 3600)
"uid", String.randomString(length:28)
我创建了令牌,将其发送回应用程序并从中执行:
Auth.auth().signIn(withCustomToken: token!, completion: { (user, error) in
我没有收到任何错误和用户,因此令牌有效。问题是用户没有值(没有电子邮件,没有displayName等)。唯一的是uid是我设置的那个:String.randomString(length:28)
如何检索用户电子邮件和其他信息?在我的linkedin帐户中,我有一个显示名称,电子邮件,图片等。但这里没有。
由于
答案 0 :(得分:0)
您必须手动设置。 Firebase Auth具有用于更新配置文件(照片URL和显示名称)以及电子邮件的API。您可以将此LinkedIn数据与自定义令牌一起发送到您的应用,使用自定义令牌登录,然后在已签名的自定义令牌用户中更新个人资料和电子邮件。
顺便提一下,将LinkedIn ID设置为该用户的UID。不要使用随机字符串。否则,下次使用LinkedIn登录时,同一用户将映射到另一个用户。