国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何通過 ASWebAuthenticationSession 獲取身份驗證 Code 碼

開發 前端
當用戶導航到站點的身份驗證URL時,站點將向用戶提供一個表單以收集憑據。驗證憑據后,站點通常使用自定義方案將用戶的瀏覽器重定向到指示身份驗證嘗試結果的URL。

 [[398919]]

本文轉載自微信公眾號「網羅開發」,作者展菲。轉載本文請聯系網羅開發公眾號。

1. 前言

項目中需要實現 GitHub、Google、Apple 登錄,實現第三方登錄方案有 3 種:

  • 集成第三方一鍵登錄
  • 分別集成 GitHub、Google、Apple 登錄 SDK
  • 不集成 SDK 打開瀏覽器登錄

今天來講一下不集成 SDK 打開瀏覽器登錄獲取身份驗證。

這需要使用 ASWebAuthenticationSession 獲取身份驗證 code 碼。

網站登錄身份驗證邏輯:

一些網站作為一種服務提供了一種用于驗證用戶身份的安全機制。

當用戶導航到站點的身份驗證URL時,站點將向用戶提供一個表單以收集憑據。

驗證憑據后,站點通常使用自定義方案將用戶的瀏覽器重定向到指示身份驗證嘗試結果的URL。

2. 不集成 SDK 打開瀏覽器登錄

你可以通過使用指向身份驗證網頁的 URL 初始化實例來在應用程序中使用網絡身份驗證服務。

該頁面可以是你維護的頁面,也可以是由第三方操作的頁面。

通過打開瀏覽器登錄并獲取身份驗證 code 碼,可以分為兩種情況:

  1. 一種情況是在 App 內部打開瀏覽器獲取身份驗證
  2. 一種是打開手機自帶瀏覽器獲取身份驗證

嘗試第一種情況之后 GitHub 和 Apple 均可以正常打開瀏覽器并且成功登錄拿到身份驗證碼。

但是 Google 提示在 App 內部打開登錄頁面是不安全的,因此只能選擇第二種方式。

3. 打開手機自帶瀏覽器獲取身份驗證

3.1 配置 URL Types

建議使用 bundle id 保證唯一性。

3.2 定義全局變量

  1. var session: ASWebAuthenticationSession! 

var session : ASWebAuthenticationSession! 需要設置為全局變量,設置為局部變量會被釋放掉導致彈框閃現。

3.3 獲取身份驗證 code 碼

  1. func oauthLogin(type: String) { 
  2.     // val GitHub、Google、SignInWithApple 
  3.     let redirectUrl = "配置的 URL Types" 
  4.     let loginURL = Configuration.shared.awsConfiguration.authURL + "/authorize" + "?identity_provider=" + type + "&redirect_uri=" + redirectUri + "&response_type=CODE&client_id=" + Configuration.shared.awsConfiguration.appClientId 
  5.     session = ASWebAuthenticationSession(url: URL(string: loginURL)!, callbackURLScheme: redirectUri) { url, error in 
  6.         if error != nil { 
  7.             return 
  8.         } 
  9.         if let responseURL = url?.absoluteString { 
  10.             let components = responseURL.components(separatedBy: "#"
  11.             for item in components { 
  12.                 if item.contains("code") { 
  13.                     let tokens = item.components(separatedBy: "&"
  14.                     for token in tokens { 
  15.                         if token.contains("code") { 
  16.                             let idTokenInfo = token.components(separatedBy: "="
  17.                             if idTokenInfo.count > 1 { 
  18.                                 let code = idTokenInfo[1] 
  19.                                 print("身份驗證 code 碼: \(code)"
  20.                                 return 
  21.                             } 
  22.                         } 
  23.                     } 
  24.                 } 
  25.             } 
  26.         } 
  27.     } 
  28.     session.presentationContextProvider = self 
  29.     session.start() 

這里面有兩個參數,一個是 redirectUri,一個是 loginURL。

redirectUri 就是 3.1 配置的白名單,作為頁面重定向的唯一標示。

loginURL 是由 5 塊組成:

  1. 服務器地址:Configuration.shared.awsConfiguration.authURL + "/authorize"
  2. 打開的登錄平臺:identity_provider = "GitHub"
  3. 重定向標識:identity_provider = "配置的 URL Types"
  4. 相應類型:response_type = "CODE"
  5. 客戶端 ID:client_id = "服務器配置"

回調中的 url 包含我們所需要的身份驗證 code 碼,需要層層解析獲取 code。

3.4 指定授權界面顯示的 window

告訴代理應該在哪個 window 展示授權界面給用戶

  1. #pragma mark - ASAuthorizationControllerPresentationContextProviding 
  2. extension ViewController: ASWebAuthenticationPresentationContextProviding { 
  3.     func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor { 
  4.         return self.view.window ?? ASPresentationAnchor() 
  5.     } 

 

責任編輯:武曉燕 來源: 網羅開發
相關推薦

2020-08-04 08:04:46

VueAPI驗證

2010-09-06 11:24:47

CHAP驗證PPP身份驗證

2022-10-31 10:00:00

2012-04-10 09:36:58

2011-02-21 10:54:45

2013-07-21 18:32:13

iOS開發ASIHTTPRequ

2020-05-26 14:18:41

RPC協議NTLM

2025-04-25 07:00:00

身份驗證CISO無密碼

2010-11-30 15:31:38

SharePoint Kerberos

2010-07-17 00:57:52

Telnet身份驗證

2022-11-02 11:42:02

2017-09-01 12:38:20

windows服務器windows 200

2022-11-03 14:33:32

2010-11-03 16:07:38

DB2身份驗證

2021-07-19 10:10:15

身份驗證漏洞Windows Hel

2014-06-27 10:31:52

2012-10-23 16:12:35

2021-06-16 10:56:32

電子郵件電子郵件攻擊BEC

2022-02-17 15:50:44

區塊鏈技術金融

2021-03-03 09:44:25

身份驗證網絡安全網絡攻擊
點贊
收藏

51CTO技術棧公眾號

麻豆av一区| 粉嫩高清一区二区三区精品视频| 在线免费看黄色| 成人黄页毛片网站| 日韩欧美视频第二区| 久久视频在线| 91精品国产91久久久久久| 欧美黑人疯狂性受xxxxx野外| 在线电影一区二区三区| 日韩福利一区二区| 欧美日韩国产精品一区二区三区四区| 高清国语自产在线观看| 国产精品久久久久毛片软件| 日本一区二区黄色| 91免费精品国自产拍在线不卡| 成人一区二区av| 韩国精品久久久| 欧美日韩中文字幕在线播放| 国产资源在线一区| 亚洲乱码日产精品bd在线观看| 国产盗摄女厕一区二区三区| 久无码久无码av无码| 99久久久精品| 国产成人精品视频ⅴa片软件竹菊| 久久伊99综合婷婷久久伊| 一本色道无码道dvd在线观看| 久久综合资源网| 男女午夜刺激视频| 亚洲国产视频一区| 精华区一区二区三区| 欧美二区在线观看| 亚洲一区资源| 久久999免费视频| 国产精品一区二区三区四区在线观看 | 日韩最新在线| 国产免费亚洲高清| 精品动漫3d一区二区三区免费| 久久一区二区三区av| 国产真实乱对白精彩久久| 男女啪啪免费视频网站| 一色屋精品亚洲香蕉网站| 中文字幕视频免费在线观看| 在线精品视频一区二区| 久久青青色综合| 久久精品国产免费观看| 青青草原在线亚洲| 成人在线资源网址| 毛片一区二区三区| 成人亚洲成人影院| 欧美精品一二三区| 欧美三级电影网址| 成人春色激情网| 精品无码三级在线观看视频| 成年人黄色片视频| 欧美性生交大片免网| 中文在线аv在线| 欧美福利在线观看| 国产精品大片| 国产精品又粗又长| 亚洲电影第三页| jizz一区二区三区| 性色av一区二区三区| 亚洲夜间福利| 久久精品.com| 欧美日本乱大交xxxxx| 国产精品一级在线观看| www.一区二区三区| 久久亚洲免费视频| 日本中文字幕在线视频| 色综合五月天导航| 免费看黄裸体一级大秀欧美| 国产视频在线视频| 51精品秘密在线观看| 亚洲午夜精品| 日韩精品电影网站| 亚洲国产美女搞黄色| 色老太综合网| 国产精品三区在线| 国产精品久久久久毛片软件| 女子免费在线观看视频www| 九九热最新视频//这里只有精品| 永久91嫩草亚洲精品人人| 久色视频在线播放| 日韩亚洲欧美综合| jlzzjlzz亚洲女人| 精品视频在线观看一区| 91精品国产日韩91久久久久久| 自拍偷拍精品| 大伊香蕉精品视频在线| 欧美日韩精品久久久| 亚洲电影一级片| 国产激情片在线观看| 欧美乱妇15p| 成人激情在线| 一区二区xxx| 国产午夜精品美女视频明星a级| 最新欧美人z0oozo0| jlzzjlzz欧美大全| www.99久久热国产日韩欧美.com| 模特精品在线| 丁香婷婷在线| 国产女人18毛片水18精品| 亚洲国产高清在线| 日韩综合久久| 妞干网在线播放| 亚洲国产一区二区三区四区| 亚洲国产黄色| 成人免费在线电影| 国产精品稀缺呦系列在线| 国产婷婷色一区二区三区四区| 僵尸再翻生在线观看| 国产伦精品一区二区三区免费视频| 亚洲精品久久久蜜桃| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 精品一区免费| 乌克兰美女av| 日韩中文字幕网站| 国产一区二区成人久久免费影院 | 狠狠干视频网站| 亚洲国产精品热久久| 日韩av一级片| heyzo高清中文字幕在线| 欧美日韩在线一二三 | 蜜桃视频在线观看视频| 国产精品免费视频久久久| 亚洲精品视频免费看| 亚洲图片久久| 激情六月丁香| 国产精品高潮视频| 天天av天天翘天天综合网| 综合久久亚洲| 激情成人四房播| 色播亚洲视频在线观看| 亚洲精品理论电影| 风流少妇一区二区| 久久爱.com| jizzjizzxxxx| 欧美大荫蒂xxx| 欧美国产精品中文字幕| 精品福利一区| 日韩日韩日韩日韩| 91免费在线观看网站| 911精品国产一区二区在线| 美女国产一区二区三区| 精品123区| 亚洲综合日韩欧美| 国产精品露脸自拍| 欧美日韩三级在线| 激情偷乱视频一区二区三区| 996久久国产精品线观看| 波多野结衣在线中文| 91蜜桃网站免费观看| 日韩欧美色电影| 国产成人在线看| 韩国女主播一区二区三区| 亚在线播放中文视频| 欧洲一区二区在线| 日韩一区二区三区国产| 亚洲另类中文字| 亚洲看片免费| 自拍一区在线观看| 99热在线看| 国产精品久久亚洲| 伊是香蕉大人久久| ...中文天堂在线一区| 亚洲国产老妈| xxx欧美xxx| 午夜影院免费| 亚洲精品自在在线观看| 欧美黑人巨大xxx极品| 在线亚洲免费视频| 成人高清在线视频| 久久久久久影院| 日韩在线短视频| 亚洲女人天堂在线| 日韩中文字幕在线不卡| 国产精品美女久久| 亚洲国产一区二区三区四区| 欧美激情一区在线| 亚洲青色在线| 亚洲国产欧美国产第一区| 大地资源中文在线观看免费版| 国产人妻777人伦精品hd| 国产精品专区第二| 亚洲激情视频在线| 亚洲女厕所小便bbb| 另类欧美日韩国产在线| 国产免费久久| 偷拍视频一区二区三区| 深夜福利免费在线观看| 国产网站免费在线观看| 黄色小网站91| 91av中文字幕| 亚洲天堂av在线播放| 在线视频一区二区免费| 欧美激情资源网| 狠狠色丁香婷综合久久| 欧美黄免费看| 成人知道污网站| 在线播放高清视频www|