关于 cidaas
cidaas 是一个快速且安全的云身份和访问管理解决方案,它标准化了重要的功能,并简化了复杂的功能。
功能集包括
- 基于 OAuth 2.0、OpenID Connect、SAML 2.0 的单点登录(SSO)
- 支持超过 14 种验证方法的多因素认证,包括 TOTP 和 FIDO2
- 无密码认证
- 社交登录(例如 Facebook、Google、LinkedIn 等)以及企业身份提供者(例如 SAML 或 AD)
- 机器到机器(M2M)和物联网(IoT)中的安全性
Cidaas SDK for IOS V2
您可以在这里找到更改日志
以下步骤将指导您使用 cidaas SDK 在应用程序中设置和管理身份验证和授权。
目录
需求
操作系统 | Xcode | Swift |
---|---|---|
iOS 10.0或更高版本 | 9.0或更高版本 | 3.3或更高版本 |
安装
Cidaas通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod 'Cidaas'
仅使用核心功能并减小依赖大小
pod 'Cidaas/Core'
入门
以下步骤用于使用此cidaas SDK:
创建名为Cidaas.plist的plist文件,并填写所有键值对。输入项如下。
示例plist文件如下
<?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>DomainURL</key>
<string>Your Domain URL</string>
<key>RedirectURL</key>
<string>Your redirect url</string>
<key>ClientId</key>
<string>Your client id</string>
<key>CidaasVersion</key>
<string>Your instances major Cidaas Version</string>
</dict>
</plist>
以下部分将帮助您生成plist所需的一些信息。
获取客户端ID和URL
在与第三方应用程序集成的过程中,您可能希望模块化交互和属性。例如,作用域、角色、授权类型、重定向URL等,您可能希望将它们组合到一个配置或设置中。这可以通过创建应用程序或客户端来实现。
初始化
将cidaas SDK集成到应用程序中的第一步是初始化过程。
var cidaas = Cidaas();
或使用共享实例
var cidaas = Cidaas.shared
使用方法
原生浏览器登录
经典登录
您可以使用本机浏览器登录,登录成功后将被重定向到应用程序。要使用本机浏览器登录,请调用 loginWithBrowser()。
var extraParams = Dictionary<String, String>()
extraParams[scopes]="offline_access phone"
cidaas.loginWithBrowser(delegate: self, extraParams: extraParams) {
switch $0 {
case .success(let successResponse):
// your success code here
break
case .failure(let error):
// your failure code here
break
}
}
社交登录
您还可以使用本机浏览器进行社交登录,登录成功后将被重定向到应用程序。要进行社交登录,请调用 loginWithSocial()。
cidaas.loginWithSocial(provider: "your_social_provider", delegate: self) {
switch $0 {
case .success(let successResponse):
// your success code here
break
case .failure(let error):
// your failure code here
break
}
}
社交提供者可以是 Facebook、Google、LinkedIn 或其他任何提供者
使用 customScheme 或 universalLinks 从浏览器返回应用程序。
Note : Don't forget to add the custom scheme url in your App's redirect url section
WKWebview集成
在故事板中拖放一个空视图
在属性窗口中将类的名称更改为 CidaasView
为该类创建一个 IBOutlet 并将其视为对象
@IBOutlet var cidaasView: CidaasView!
继承 WKNavigationDelegate 并调用方法
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
cidaasView.webView(webView, didStartProvisionalNavigation: navigation)
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
cidaasView.webView(webView, didFail: navigation, withError: error)
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
cidaasView.webView(webView, decidePolicyFor: navigationAction, decisionHandler: decisionHandler)
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
cidaasView.webView(webView, didFinish: navigation)
}
调用 loginWithEmbeddedBrowser() 函数并获取访问令牌作为回调
cidaasView.loginWithEmbeddedBrowser(delegate: self) {
switch $0 {
case .success(let successResponse):
// your success code here
break
case .failure(let error):
// your failure code here
break
}
}