【发布时间】:2016-01-22 07:17:10
【问题描述】:
我有自己的 web 应用程序,使用 laravel 作为后端,效果很好。
现在,我开始编写 IOS 应用程序(IOS 9、Xcode 7、Swift 2)并希望将其连接到我的网络应用程序数据库,以便使用 API 进行查询。
我卡住的第一步是关于用户通过 IOS 应用程序连接到 Web 应用程序数据库的登录名/密码。
我已在我的 Web 应用程序上安装了 oauth 2.0 配置并使用密码授予类型。用 Postman 测试,我可以使用带有 x-www-form-urlencoded 的正文中的以下参数获取访问令牌:
- grant_type = 密码
- client_id = f3d259ddd3ed8ff3843839b
- client_secret = 4c7f6f8fa93d59c45502c0ae8c4a95b
- 用户名 = user1@test.com
- 密码 = 123456
现在,我想使用来自 IOS 应用的这些凭据访问此 Web 应用的数据库。
我在视图控制器中创建了一个登录表单。当我点击登录按钮时,我会启动一个 IBAction,如下所示:
@IBAction func login(sender: UIButton){
let myURL = NSURL(string: "http://myWebApplication.com/oauth/access_token")!
let request = NSMutableURLRequest(URL: myURL)
request.HTTPMethod = "POST"
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
let bodyStr:String = "grant_type=password&client_id=f3d259ddd3ed8ff3843839b&client_secret=4c7f6f8fa93d59c45502c0ae8c4a95b&username=user1@test.com&password=123456"
request.HTTPBody = bodyStr.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
// Your completion handler code here
}
task.resume()
}
但什么也没发生。
你能告诉我哪里错了吗?
我花了几个小时寻找解决方案,上面的代码就是这个搜索的结果。不幸的是,还不够。
最重要的是,下一步要存储网络应用返回的访问令牌并使用它,以便我可以发送与该特定用户相关的查询?
提前感谢您的帮助
【问题讨论】: