使用 Swift 3 和 iOS 在发送到 Parse Server 的 authdata 对象中使用来自 google 登录的哪个 authdata
Posted
技术标签:
【中文标题】使用 Swift 3 和 iOS 在发送到 Parse Server 的 authdata 对象中使用来自 google 登录的哪个 authdata【英文标题】:Which authdata from google signin to use in authdata object sent to Parse Server with Swift 3 and iOS 【发布时间】:2017-03-18 15:42:39 【问题描述】:我正在使用 Swift 3 来允许用户登录我的应用程序,该应用程序使用 Parse-Server 后端。我可以很好地使用 Google Plus 登录,但是当我将 authData 发送到 Parse Server 以对用户进行令牌验证时出现错误,我收到一般错误“Google auth invalid for this user”。我怀疑我在 loginWithType 方法中发送了错误的“id”。我检查了 Parse-Server 存储库中的代码,它只有“id”和“token”作为其参数。我怀疑我发送了错误的“id”。所以 id 需要正确的信息作为 id 参数发送并仔细检查我的格式。下面是我正在使用的代码。
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)
print("google sign in hit in app delegate")
if (error == nil)
print("error is not nil")
var curUser = PFUser.current()
if (curUser != nil)
print("Skip Google Auth - Found cur user");
return;
else
// Perform any operations on signed in user here.
let userId = user.userID
// For client-side use only!
let idToken = user.authentication.idToken // Safe to send to the server
let fullName = user.profile.name
let givenName = user.profile.givenName
let familyName = user.profile.familyName
let email = user.profile.email
let idt = user.serverAuthCode
PFUser.register(AuthDelegate(), forAuthType: "google")
PFUser.logInWithAuthType(inBackground: "google", authData: ["id":user.authentication.clientID,"token":idToken!])
// logging in confirmed on back end
感谢您提供的任何帮助。
【问题讨论】:
【参考方案1】:尝试改变
authData: ["id":user.authentication.clientID,"token":idToken!]
到:
authData: ["id":userId!,"token":idToken!]
【讨论】:
我仍然遇到同样的错误。如果您确定这是正确的格式,则问题一定出在 parse-server 的实现中。 我不是。可以打印用户 ID 吗?【参考方案2】:迟到的答案,但如果您没有弄清楚这一点,您需要将您的 authData 键编辑为:
let authData = ["access_token": access_token,
"id":id]
【讨论】:
以上是关于使用 Swift 3 和 iOS 在发送到 Parse Server 的 authdata 对象中使用来自 google 登录的哪个 authdata的主要内容,如果未能解决你的问题,请参考以下文章
将进度从 NSURLSession 发送到 ViewController [swift - iOS]
当 iPhone 不在附近时,使用 Swift 将数据从 Apple Watch 发送到 iPhone
如何在 swift 3 中使用 Alamofire 制作和发送字典数组(JSON 格式)发送到服务器
将图像从 ios swift 3 上传到 jsp Web 服务