我能够使用LinkedIn SDK快速获取LinkedIn LinkedIn帐户的访问令牌。如何使用Stormpath验证此登录信息?LinkedIn登录Stormpath
[更新]
设APIURL = “https://api.stormpath.com/v1/applications/LI_APPLICATION_ID /帐户”
func sendRequestWithJSON(accessToken:String)
{
let json = [ "providerData" : ["providerId": "linkedin", "accessToken": accessToken] ]
do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(json, options: .PrettyPrinted)
let username = STORMPATH_API_KEY_ID
let password = STORMPATH_API_KEY_SECRET
let loginString = NSString(format: "%@:%@", username, password)
let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!
let base64LoginString = loginData.base64EncodedDataWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
// create post request
let url = NSURL(string: APIURL)!
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
// insert json data to the request
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPBody = jsonData
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
if error != nil{
print("Error -> \(error)")
return
}
do {
let result = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String:AnyObject]
print("Result -> \(result)")
} catch {
print("Error -> \(error)")
}
}
task.resume()
//return task
} catch {
print(error)
}
}
我传递的accessToken从LinkedIn到上述功能取得,但它返回以下结果:
[“message”:需要认证,“status”:401,“code”:401,“developerMessage”:A必须使用有效的API密钥进行验证。“moreInfo”:http://www.stormpath.com/docs/quickstart/connect]
我在做什么?
[iOS linkedin认证]的可能重复(http://stackoverflow.com/questions/28491280/ios-linkedin-authentication) – JAL
我不认为它是重复的。链接的问题是询问关于vanilla LinkedIn登录,而这个问题是关于Stormpath支持的应用程序。 –