如何使用 OAuth 在 Parse iOS SDK 中对用户进行身份验证?

How to authenticate a user in Parse iOS SDK using OAuth?

Parse Server 提供 OAuth 身份验证。我如何使用 Parse Server 的预定义 OAuth 模块,例如Facebook,注册新用户或登录“_User”的现有用户 class?

Parse Server docs 提供了有关如何配置 OAuth 模块的示例。但是如何在 iOS 项目中使用它来登录或注册用户?

1,创建一个 class 从 NSObject 和 PFUserAuthenticationDelegate 扩展。

class AuthDelegate:NSObject, PFUserAuthenticationDelegate {
    func restoreAuthenticationWithAuthData(authData: [String : String]?) -> Bool {
        return true
    }
}

2、注册这个认证代理

// parmeter 'forAuthType' is the name of file defined in 
// https://github.com/parse-community/parse-server/blob/master/src/Adapters/Auth/index.js
// such as: google, github, linkedin ......
PFUser.registerAuthenticationDelegate(AuthDelegate(), forAuthType: "google")

3、使用PFUser.logInWithAuthTypeInBackground方法将用户信息存储到_User

// for google oauth, authData format will be
// ["id":"PUT_USER_ID_HERE","accesstoken":"PUT_TOKEN_HERE"]
PFUser.logInWithAuthType(inBackground: "google", authData:[.....])

4,你会看到在_User中创建了一条记录,只有objectId和authData