Microsoft Azure移动SDK自定义提供程序登录IOS

时间:2017-10-30 10:45:14

标签: swift azure mobile azure-mobile-services

我已关注this tutorial在Azure移动应用上使用自定义提供程序实现登录。后端工作正常,但当我尝试登录我的新自定义控制器时,我无法做到这一点。可以使用Xamarin以及java Android来实现它,但是无法使用Objective C或Swift来实现它。

Microsoft Azure移动SDK上的对象MSClient only has two login implementations.

我试过了两次但没有运气,回调总是返回一个空的客户端。 我也试图存储由自己的API创建的令牌使用它进行登录调用,但没有再好运。

这是我的Swift代码:

let client = MSClient(applicationURLString: "https://myApp.azurewebsites.net")
    client.login(withProvider: "custom", urlScheme: "myApp", parameters: ["username": "pau", "password": "123456"], controller: self, animated: true) {user, error in
        print("USER", user)
        print("ERROR", error)
    }

1 个答案:

答案 0 :(得分:0)

我们找到了一个解决方案,它非常简单,但msclient文档不够清晰。您只需要将所需的任何内容(即:用户名,密码)作为令牌参数中的字典传递。

        Client.msClient.login(withProvider: "auth", token: params, completion: {user, error in
            print("USER", user)
            print("ERROR", error)
            print("USER ID", user?.userId)
            print("TOKEN", user?.mobileServiceAuthenticationToken)

            if let user: MSUser = user {
                guard let username: String = user.userId else { return }
                guard let token: String = user.mobileServiceAuthenticationToken else { return }
                Client.username = username
                Client.msClient.currentUser = user
                completion(true)
            }else {
                completion(false)
            }
        })