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

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)化
国产丝袜美腿诱惑久久| 精品女同一区二区三区久久| 国产在线一区二区三区不卡| 国产熟女肥臀精品国产馆乱| 国产伦精品二区三区视频| 国产欧美日韩精品三级| 99久久免费看国产精品| 久久亚洲精品中文字幕一| 中文字幕五月久久婷热| 中文字幕日韩欧美一区在线| 久久精品国产av极品| 日韩乱码高清一本免费啪| 日本人妻在线不卡视频| 精品一区二区视频在线观看网站| 在线观看免费在线观看免费 | av一区二区日韩精品久| 日韩三级黄片在线观看| 国产精品精品久久久久久| 97福利影院在线观看| 亚洲性感人妻系列网站| 清纯美女爱爱高潮av| 中文有码人妻字幕在线| 久久精品国产亚洲av麻豆花絮 | 国产精品一区二区高潮| 人妻一区二区三区免看| 日韩国产欧美色资源在线| 懂色粉嫩蜜臀久久一区二区| 亚洲av男人天堂一区| 国产美女高潮流白浆视频免费看 | 久久精品一区欧美成人| 色哟哟在线观看国产精品| 国产97精品在线播放| 久久免费看少妇高潮av| 亚洲av毛片在线网站| 麻豆一精品传二传媒短视频| 婷婷色精品一区二区激情| 日本韩国国语对白一区二区三区| 韩国三级在线视频网站| 98精品偷拍视频一区二区三区| 男人av天堂手机在线| 亚洲天堂人妻一区二区|