TDConnectIosSdk 1.4.6

TDConnectIosSdk 1.4.6

测试已测试
Lang语言 SwiftSwift
许可证 Apache 2
发布最新发布2018年6月
SPM支持 SPM

Jørund B. FagerjordAtanas Bakalov 维护。



 
依赖
AeroGearHttp>= 0
JSONWebToken>= 0
 

  • Telenor Digital

connect-ios-sdk

基于 aerogear-ios-http 的 OAuth2 客户端。

功能

  • 多 OAuth2 账户的账户管理器,
  • 请求访问和刷新令牌,
  • 通过安全浏览器和 URI 架构授权访问并在应用中重新进入,
  • (隐式或显式)刷新令牌,
  • 撤销令牌,
  • 永久安全存储,

Swift 4.0

请使用 GitHub 的 Watching 功能来通知 SDK 的新版本。

使用 SDK 的 Hello World 应用

开始的最简单方法是查看 Hello World 示例应用。

https://github.com/telenordigital/TelenorConnectIosHelloWorld.

实现了 http://docs.telenordigital.com/apis(connect/id/authentication).html 上的 API。

可以从 https://aerogear.org/docs/guides/aerogear-ios-2.X/ 中找到从中分叉的项目文档。

构建、测试和玩耍 connect-ios-sdk

  1. 克隆此项目

  2. 获取依赖项

该项目使用 CocoaPods 来处理其依赖项。作为先决条件,请安装 CocoaPods 并然后安装 pod。在项目的根目录中运行

pod install
  1. 打开 TDConnectIosSdk.xcworkspace

将库添加到您的项目中

要将库添加到您的项目中,您可以使用 CocoaPods 或在项目中手动安装。以下是说明和操作步骤。

使用 CocoaPods

在您的 Podfile 中添加

pod 'TDConnectIosSdk'

然后

pod install

安装您的依赖项

手动安装

按照以下步骤在 Swift 项目中添加库

  1. 将 TDConnectIosSdk 作为 子模块 添加到您的项目中。打开一个终端,导航到您的项目目录。然后输入
git submodule add https://github.com/telenordigital/connect-ios-sdk.git
  1. 打开 connect-ios-sdk 文件夹,并将 /TDConnectIosSdk.xcodeproj 拖到 Xcode 的文件导航器中。
  2. 在 Xcode 中选择您的应用程序目标,并确保在“Target”下,将“iOS Deployment Target”设置为与 TDConnectIosSdk.framework 应用程序目标一致(目前设置为 8.0)。
  3. 选择“Build Phases”下的“Target Dependencies”组,并添加 TDConnectIosSdk.framework
  4. 点击面板左上角的 + 按钮,并选择“New Copy Files Phase”。将此新阶段重命名为“Copy Frameworks”,设置“Destination”为“Frameworks”,并添加 TDConnectIosSdk.framework

高级使用

保密客户端

要将SDK设置为保密客户端模式,请在Config对象中使用可选的初始化参数将isPublicClient设置为false。否则,它将成为默认的公共客户端
保密客户端不会交换授权代码,而是通过回调简单地将此返回给客户端。然后应用程序代码可以将此发送到客户端的客户端端组件。

有关更多信息,请参阅http://docs.telenordigital.com/connect/id/native_apps.html

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    let config = TelenorConnectConfig(clientId: "telenordigital-connectexample-ios",
                                      redirectUrl: "telenordigital-connectexample-ios://oauth2callback",
                                      useStaging: true,
                                      scopes: ["profile", "openid", "email"],
                                      accountId: "telenor-connect-ios-hello-world",
                                      isPublicClient: false) // this variable needs to be present
    
    let oauth2Module = AccountManager.getAccountBy(config: config)
        ?? AccountManager.addAccountWith(config: self.config, moduleClass: TelenorConnectOAuth2Module.self)
    
    oauth2Module.requestAuthorizationCode { (authorizationCode: AnyObject?, error: NSError?) in
        if (error != nil) {
            // handle error
            return
        }
        
        // use authorizationCode
    }
}