Skip to main content

iOS/macOS

配置Authok

获取应用密钥

你需要如下信息

  • Domain
  • Client ID
  • Client Secret

配置回调URL

配置 Logout URL

配置 AuthOK

回调URL 配置:

iOS

YOUR_BUNDLE_IDENTIFIER://YOUR_DOMAIN/ios/YOUR_BUNDLE_IDENTIFIER/callback

macOS

YOUR_BUNDLE_IDENTIFIER://YOUR_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback

配置 自定义URL Scheme

Xcode >> Info, 在 URL Types 章节, 点击 + 按钮添加自定义URL Scheme. 在 Identifier 字段中输入authok, 在 URL Schemes字段中输入${PRODUCT_BUNDLE_IDENTIFIER}.

安装SDK

把 Authok.swift SDK添加到工程.

Swift 包管理器

Xcode >> File >> Add Packages, 在 Search or Enter Package URL搜索框中输入

https://github.com/authok/Authok.swift

之后选择 依赖规则 并点击 Add Package.

Cocoapods

Podfile中添加:

pod 'Authok', '~> 1.0'

之后运行pod install.

Carthage

Carthage文件中添加:

github "authok/Authok.swift" ~> 1.0

配置SDK

创建一个名为Authok.plistplist文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ClientId</key>
<string>YOUR_CLIENT_ID</string>
<key>Domain</key>
<string>YOUR_DOMAIN</string>
</dict>
</plist>

登录

在需要展示登录页的文件中导入Authok模块:

import Authok

登录按钮的调用中唤醒统一登录页面:

Authok
.webAuth()
.start { result in
switch result {
case .success(let credentials):
print("认证成功: \(credentials)")
case .failure(let error):
print("Failed with: \(error)")
}
}

注销

注销按钮的调用中执行以下代码:

Authok
.webAuth()
.clearSession { result in
switch result {
case .success:
print("注销成功")
case .failure(let error):
print("Failed with: \(error)")
}
}

访问用户详情

登录成功返回的凭证中包含 ID Token, 其中包含了用户详情如名称,头像等. 可以使用JWTDecode模块来解码 JWT格式的ID Token.

import JWTDecode

使用decode(jwt:)解码 ID Token:

guard let jwt = try? decode(jwt: credentials.idToken),
let name = jwt.claim(name: "name").string,
let picture = jwt.claim(name: "picture").string else { return }
print("Name: \(name)")
print("Picture URL: \(picture)")