2017-12-17 9 views
0

私はリンクされたApiで、oAuth 2.0を迅速に使用しています。主な問題は、access_tokenを取得した後にUIWebViewにクッキーを書き込んでいないことです。 私はない/feedページaccess_tokenが、ディスプレイのログインページを取得した後、この `oAuthを使用したLinkedinのログイン1.0a

oginWebView.loadRequest(URLRequest(url: URL(string : "https://www.instagram.com/")!)) 

を試してみました。私は私のアプリのためのクッキーが必要です。私は多くの投稿をチェックしましたが、oAuth 1.0aの認証には適切な解決策がありませんでした。 私はInstagram oauthを使用しています。私はoAuth 1.0のためだと思う。私はoAuthについて多くの知識を持っていませんでした。

oAuth 1.0aを使用して、webviewでリンクン認証の簡単なログインの例(swift、objective-c)を教えてください。または、クッキーを保存するための他のソリューション。または、私はlinkedinのコードの下でどのように使用できますか?おかげさまで
oAuth 1.0 Sample

struct INSTAGRAM_IDS { 

    static let INSTAGRAM_AUTHURL = "https://api.instagram.com/oauth/authorize/" 
    static let INSTAGRAM_APIURl = "https://api.instagram.com/v1/users/" 
    static let INSTAGRAM_CLIENT_ID = "" 
    static let INSTAGRAM_CLIENTSERCRET = "" 
    static let INSTAGRAM_REDIRECT_URI = "" 
    static let INSTAGRAM_ACCESS_TOKEN = "access_token" 
    static let INSTAGRAM_SCOPE = "likes+comments+relationships+public_content+follower_list" 
} 

func unSignedRequest() { 
     let authURL = String(format: "%@?client_id=%@&redirect_uri=%@&response_type=token&scope=%@&DEBUG=True", arguments: [INSTAGRAM_IDS.INSTAGRAM_AUTHURL,INSTAGRAM_IDS.INSTAGRAM_CLIENT_ID,INSTAGRAM_IDS.INSTAGRAM_REDIRECT_URI, INSTAGRAM_IDS.INSTAGRAM_SCOPE ]) 
     let urlRequest = URLRequest.init(url: URL.init(string: authURL)!) 
     loginWebView.loadRequest(urlRequest) 
    } 

    func checkRequestForCallbackURL(request: URLRequest) -> Bool { 

     let requestURLString = (request.url?.absoluteString)! as String 

     if requestURLString.hasPrefix(INSTAGRAM_IDS.INSTAGRAM_REDIRECT_URI) { 
      print(requestURLString, "RedirectURL") 
      let range: Range<String.Index> = requestURLString.range(of: "#access_token=")! 
      handleAuth(authToken: requestURLString.substring(from: range.upperBound)) 
      self.dismiss(animated: true, completion: nil) 
      return false; 
     } 
     return true 
    } 

    func handleAuth(authToken: String) { 
     print("Instagram authentication token ==", authToken) 
     downloadImage(url: URL(string: "https://api.instagram.com/v1/users/self?access_token=\(authToken)")!) 
} 

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
     return checkRequestForCallbackURL(request: request) 
    } 

答えて

1

は、次のコードを試すことができます:

import Foundation 

let headers = [ 
    "cache-control": "no-cache", 
] 

let request = NSMutableURLRequest(url: NSURL(string: "https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=123456789&redirect_uri=https%3A%2F%2Fwww.example.com%2Fauth%2Flinkedin&state=987654321&scope=r_basicprofile")! as URL, 
             cachePolicy: .useProtocolCachePolicy, 
            timeoutInterval: 10.0) 
request.httpMethod = "GET" 
request.allHTTPHeaderFields = headers 

let session = URLSession.shared 
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in 
    if (error != nil) { 
    print(error) 
    } else { 
    let httpResponse = response as? HTTPURLResponse 
    print(httpResponse) 
    } 
}) 

dataTask.resume() 

NSURLにクエリ文字列パラメータを変更してください。応答ヘッダーはクッキーのデータとともに返されます。

関連する問題