Laravel5.3でiOSなどのモバイル用のAPIを作成する方法
目的: Laravel5.3で作成したAPIをiOSから用いたい
Laravel5.3にPassportを導入し、iOSからaccess_token
を取得することはできました。
以下はその例です。
let authUrl = URL(string: "http://laravel.dev/oauth/token")!
let authBody = NSMutableDictionary()
var request = URLRequest(url: authUrl)
authBody.setValue("2", forKey: "client_id")
authBody.setValue("*******", forKey: "client_secret")
authBody.setValue("api@laravel.com", forKey: "username")
authBody.setValue("*******", forKey: "password")
authBody.setValue("password", forKey: "grant_type")
authBody.setValue("", forKey: "scope")
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.httpBody = try JSONSerialization.data(withJSONObject: authBody, options: JSONSerialization.WritingOptions.prettyPrinted)
URLSession.dataTask(with: request, completionHandler: completionHandler: { data, response, error in
let json = try? JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.allowFragments) as! [String: AnyObject]
print(json!) // 正しくtokenを受け取れていることを確認
}).resume()
しかし、tokenを取得したのはよいのですが、このtokenをどう使えばLaravelで作成したAPIが使えるようになるのか?
ということがわかりませんでした。
以下の画像はLaravelで作成してあるAPIの一部です。
API認証やPassportについて色々調べましたが、WebからAPIを用いる方法しかなく私のやりたいことをみつけることができませんでした。