iOS Moya 實現 OAuth 2.0 請求
0. 起源
開放授權(OAuth)是一個開放標準,允許使用者讓第三方應用訪問該使用者在某一網站上儲存的私密的資源(如照片,視訊,聯絡人列表),而無需將使用者名稱和密碼提供給第三方應用。
而作為第三方軟體,為使用者提供 OAuth 登入是更好的選擇,可以有效打消使用者對於個人賬戶密碼洩露的顧慮,同時也能有效避免使用者反覆登入,進而增加使用者的舒適度,提高使用者粘性。
1. 環境
專案使用 MVVM 架構,引入了 Rx 全家桶,網路請求框架使用了(https://github.com/Moya/Moya),以及處理 Oauth 相關的庫(https://github.com/p2/OAuth2)。
2. OAuth2 部分
參閱 OAuth2 庫的(https://github.com/p2/OAuth2),完成 OAuth 的資訊配置:
let oauth2 = OAuth2CodeGrant(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",// code grant only "redirect_uris": ["myapp://oauth/callback"],// register your own "myapp" scheme in Info.plist "scope": "user repo:status", "secret_in_body": true,// Github needs this "keychain": false,// if you DON'T want keychain integration ] as OAuth2JSON)