【发布时间】:2017-02-03 11:38:20
【问题描述】:
我当前的应用程序正在解析服务器上运行,我想将它移植到 Kitura。到目前为止,我已经成功连接到在 Parse Server 后面运行的 mongodb 并提供数据。
对于 web 部分,我已经设法使用带有用户 ID 和密码的静态字典来进行 http 基本身份验证。
我在 iOS 部分苦苦挣扎。我的应用程序已经有很多用户。用户存储在 mongodb 中的一个表中。我有三种类型的用户:
- Facebook 用户。使用 Facebook 帐户注册的用户。
- 直接用户。使用应用注册表单创建帐户的用户。
- 匿名用户。对他们来说,我正在生成一个唯一的 ID,并将其存储在他们的设备中,这样我就可以保存他们的数据。对于这个问题的上下文,他们应该被视为直接用户。
要将用户从解析服务器迁移到kitura,我计划采取以下步骤:
- 首次应用启动时。创建一个随机密钥并将其存储在用户表中。
- 保存后,使用此密钥登录 Kitura。
- 成功登录 Kitura 后删除密钥。
我已经安装了移动访问客户端和推送通知。
我无法解决的是使用什么方法来验证用户,无论是服务器端还是客户端。
到目前为止,基本的 http 身份验证有效(仅限直接用户),但我相信还有更好的方法。
我当前的基本 http 身份验证
let url = "http://172.20.10.3:8080/private2/class/KiteSpot?responseType=json"
var mutableURLRequest = URLRequest(url: nsURL)
mutableURLRequest.httpMethod = "GET"
let loginString = "<user>:<pass>"
let loginData = loginString.data(using: String.Encoding.utf8)!
let base64LoginString = loginData.base64EncodedString()
mutableURLRequest.addValue("DirectUserToken", forHTTPHeaderField: "X-token-type")
mutableURLRequest.addValue("text/plain", forHTTPHeaderField: "Accept")
mutableURLRequest.addValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
self.sendRequest(mutableURLRequest, onSuccess: onSuccess, onFailure: onFailure)
【问题讨论】:
标签: swift ibm-cloud ibm-mobile-services