欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

iOSMoya中怎么實(shí)現(xiàn)OAuth請(qǐng)求

這篇文章給大家介紹iOSMoya中怎么實(shí)現(xiàn)OAuth請(qǐng)求,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)專注于網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

1. 環(huán)境

項(xiàng)目使用 MVVM 架構(gòu),引入了 Rx 全家桶,網(wǎng)絡(luò)請(qǐng)求框架使用了 Moya,以及處理 Oauth 相關(guān)的庫 OAuth3。

2. OAuth3 部分

參閱 OAuth3 庫的 README,完成 OAuth 的信息配置:

let oauth3 = OAuth3CodeGrant(settings: [  "client_id": "my_swift_app",  "client_secret": "C7447242",  "authorize_uri": "https://github.com/login/oauth/authorize",  "token_uri": "https://github.com/login/oauth/access_token",  "redirect_uris": ["myapp://oauth/callback"],  "scope": "user repo:status",  "secret_in_body": true,  "keychain": false,] as OAuth3JSON)

同時(shí)因?yàn)?Moya 的底層網(wǎng)絡(luò)請(qǐng)求實(shí)現(xiàn)是基于 Alamofire,因此我們可以參照 OAuth3 提供的說明文檔 Alamofire 4 · p2/OAuth3 Wiki · GitHub完成相關(guān)配置,關(guān)鍵代碼如下:

import Foundationimport OAuth3import Alamofireclass OAuth3RetryHandler: RequestRetrier, RequestAdapter {  let loader: OAuth3DataLoader  init(oauth3: OAuth3) {    loader = OAuth3DataLoader(oauth3: oauth3)  }  /// Intercept 401 and do an OAuth3 authorization.  public func should(_ manager: SessionManager, retry request: Request, with error: Error, completion: @escaping RequestRetryCompletion) {    if let response = request.task?.response as? HTTPURLResponse, 401 == response.statusCode, let req = request.request {      var dataRequest = OAuth3DataRequest(request: req, callback: { _ in })      dataRequest.context = completion      loader.enqueue(request: dataRequest)      loader.attemptToAuthorize() { authParams, error in        self.loader.dequeueAndApply() { req in          if let comp = req.context as? RequestRetryCompletion {            comp(nil != authParams, 0.0)          }        }      }    }    else {      completion(false, 0.0)  // not a 401, not our problem    }  }  /// Sign the request with the access token.  public func adapt(_ urlRequest: URLRequest) throws -> URLRequest {    guard nil != loader.oauth3.accessToken else {      return urlRequest    }    return try urlRequest.signed(with: loader.oauth3)  // "try" added in 3.0.2  }}

3. Moya 部分

Moya 的 provider 在初始化時(shí)可以傳入 SessionManager ,因此參照文檔,可以先使用 OAuth3 生成一個(gè)特定的 SessionManager :

func getManager() -> SessionManager {    let oauth3 = OAuth3CodeGrant(settings: [      "client_id": "my_swift_app",      "client_secret": "C7447242",      "authorize_uri": "https://github.com/login/oauth/authorize",      "token_uri": "https://github.com/login/oauth/access_token",      "redirect_uris": ["myapp://oauth/callback"],      "scope": "user repo:status",      "secret_in_body": true,      "keychain": false,      ] as OAuth3JSON)    let sessionManager = SessionManager()    let oauthHandler = OAuth3Handler(oauth3: oauth3)    sessionManager.adapter = oauthHandler    sessionManager.retrier = oauthHandler    return sessionManager  }

進(jìn)而生成帶 OAuth 的 provider:

fileprivate lazy var provider: MoyaProvider = {  return MoyaProvider<API>(manager: self.getManager(),              plugins: [NetworkLoggerPlugin()])}()

關(guān)于iOSMoya中怎么實(shí)現(xiàn)OAuth請(qǐng)求就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

名稱欄目:iOSMoya中怎么實(shí)現(xiàn)OAuth請(qǐng)求
文章網(wǎng)址:http://aaarwkj.com/article28/jeshcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作App設(shè)計(jì)、Google、網(wǎng)站維護(hù)企業(yè)建站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
另类激情综合在线观看| 国产av一区二区三区日韩接吻| 凹凸国产精品熟女视频| 欧美一级纯黄电影视频| 一区二区高清免费日本| 下一篇亚洲一区二区三区| 国产原创av剧情在线播放| 亚洲综合色视频免费在线播放| 日韩免费视频一区二区三区免费| 伊人久久综在合线亚洲| 亚洲男女尻逼片视频网站| 日本成人精品二区在线观看| 日本熟女中文字幕一区| 亚洲精品小视频在线观看| 久久精品国产一区二区三区不卡 | 日本一区两区三区不卡视频| 精品国产一区二区三区性色av| 少妇激情一区二区三区免费视频| 精品国产50部农村老熟女av| av在线免费观看美日韩| 精品国产av色一区二区| 东京男人的天堂国产av| 亚洲精品综合在线二区| 青青草原影院在线观看| 国产欧洲日本一区二区| 久久精品国产亚洲av高清一区 | 国产精品国语对白av处女| 日韩国产一区二区在线观看| 天天操夜夜操白天操晚上操| 视频一区二区视频三区| 国产三级久久精品三级91| 手机看片黄色福利视频91| 久久久久久精品国产av| 亚洲av网站一区二区三区| 亚洲天堂日韩欧美在线| 两性色午夜视频免费网站| 亚洲成人久久久久久久| 国产精品国产三级国产专播精品| 高清av网站大全网站| 国产91日韩欧美在线观看| 91亚洲国产成人精品性色|