OAuthFramework 0.2.3

OAuthFramework 0.2.3

Programistich 维护。



 
依赖
GoogleSignIn~> 6.0.2
FBSDKCoreKit~> 16.2.1
FBSDKLoginKit~> 16.2.1
Logging>= 0
SwiftLint>= 0
 

  • Oleksii Dzhos

流行社交网络中的 OAuth 单一 iOS 库 - OAuthFramework

安装

Swift Package Manager

  • 文件 > Swift 包 > 添加依赖
  • 添加 https://github.com/NaUKMA-Programistich/OAFramework.git

Google

设置

示例

  • 将 Google 客户端 ID 添加到 Info.plist
    <key>GIDClientID</key>
    <string>CLIENT_ID</string>
  • 将回退 URL 添加到 Schemes
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>URL</string>
    </array>
  </dict>
</array>

SwiftUI

  • openUrl 中调用 GoogleOAuth.shared.handleLink(url: url)
  • 调用 GoogleOAuth.shared.displayInformationBy 显示登录结果
@main
struct OAuthExampleApp: App {
    var body: some Scene {
        WindowGroup {
            Button("Google Login") {
                GoogleOAuth.shared.startProcessSignIn { user, error in
                    GoogleOAuth.displayInformationBy(data: (user, error))
                }
            }
            .padding()
            .onOpenURL(perform: { url in
                GoogleOAuth.shared.handleLink(url: url)
            })
        }
    }
}

UIKIT

  • 通过方法 application:openURL:options 在 AppDelegate 中调用 GoogleOAuth.shared.handleLink(url: url)
  • 在动作中调用 GoogleOAuth.shared.startProcessSignIn

Facebook

配置

示例

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>fbAPP-ID</string>
  </array>
  </dict>
</array>

<key>FacebookAppID</key>
<string>APP-ID</string>
<key>FacebookClientToken</key>
<string>CLIENT-TOKEN</string>
<key>FacebookDisplayName</key>
<string>APP-NAME</string>

SwiftUI

  • openUrl中调用FacebookOAuth.shared.handleLink(url: url)
  • 在动作上调用FacebookOAuth.shared.startProcessSignIn
  • 为显示登录结果调用FacebookOAuth.shared.displayInformationBy
import SwiftUI
import OAFramework

@main
struct OAuthExampleApp: App {
    var body: some Scene {
        WindowGroup {
            Button("Facebook Login") {
                FacebookOAuth.shared.startProcessSignIn { result, error in
                    FacebookOAuth.displayInformationBy(data: (result, error))
                }
            }
            .padding()
            .onOpenURL(perform: { url in
                FacebookOAuth.shared.handleLink(url: url)
            })
        }
    }
}

UIKIT

  • 在AppDelegate中通过方法application:didFinishLaunchingWithOptions调用FacebookOAuth.shared.handleLink(url: url)
  • 在动作上调用FacebookOAuth.shared.startProcessSignIn

GitHub

设置

示例

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>CALLBACK</string>
  </array>
  </dict>
</array>

<key>GithubClientId</key>
<string>CLIENT-ID</string>
<key>GithubSecretToken</key>
<string>SECRET-TOKEN</string>
<key>GithubCallback</key>
<string>CALLBACK</string>

SwiftUI

  • 在操作中调用 GithubOAuth.shared.startProcessSignIn
  • 调用 GithubOAuth.shared.displayInformationBy 显示登录结果
import SwiftUI
import OAFramework

@main
struct OAuthExampleApp: App {
    var body: some Scene {
        WindowGroup {
            Button("Github Login") {
                GithubOAuth.shared.startProcessSignIn { token, error in
                    GithubOAuth.displayInformationBy(data: (token, error))
                }
            }
            .padding()
        }
    }
}

UIKit

  • 在操作中调用 GithubOAuth.shared.startProcessSignIn

Twitter

设置

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>CALLBACK</string>
  </array>
  </dict>
</array>

<key>TwitterApiKey</key>
<string>API-KEY</string>
<key>TwitterApiKeySecret</key>
<string>API-KEY-SECRET</string>
<key>TwitterCallback</key>
<string>CALLBACK</string>

SwiftUI

import SwiftUI
import OAFramework

@main
struct OAuthExampleApp: App {
    var body: some Scene {
        WindowGroup {
            Button("Twitter Login") {
                TwitterOAuth.shared.startProcessSignIn { token, error in
                    TwitterOAuth.displayInformationBy(data: (token, error))
                }
            }
            .padding()
        }
    }
}

UIKIT

  • 在动作中调用 TwitterOAuth.shared.startProcessSignIn

作者

Dzhos Oleksii [email protected]