流行社交网络中的 OAuth 单一 iOS 库 - OAuthFramework
安装
Swift Package Manager
- 文件 > Swift 包 > 添加依赖
- 添加
https://github.com/NaUKMA-Programistich/OAFramework.git
设置
- 获取 OAuth 客户端 ID 和 URL https://console.cloud.google.com/
示例
- 将 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
配置
-
通过ID在https://developers.facebook.com/docs/facebook-login/ios/注册应用程序
-
将客户端ID添加到Info.plist (APP-ID - 我们的应用程序ID, APP-NAME - 登录文本中的文本, CLIENT-TOKEN - )
示例
<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
设置
- 在 https://github.com/settings/developers#oauth-apps 注册应用
- 将客户端ID、密钥令牌、回调URL添加到 Info.Plist 中
示例
<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
设置
- 在 https://developer.twitter.com/en/portal/projects-and-apps 注册应用
- 将API密钥、API密钥密钥、客户端ID、密钥令牌、回调URL添加到Info.Plist中
<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]