{"id":24525864,"url":"https://github.com/cidaas/cidaas-sdk-ios-v2","last_synced_at":"2026-03-05T23:41:47.629Z","repository":{"id":55122253,"uuid":"143137909","full_name":"Cidaas/cidaas-sdk-ios-v2","owner":"Cidaas","description":"With this SDK, you can integrate cidaas smoothly and with minimal effort into your IOS application. It enables you to map the most important user flows for OAuth2 and OIDC compliant authentication. Secure – Fast – And unrivaled Swabian.","archived":false,"fork":false,"pushed_at":"2025-03-11T14:48:17.000Z","size":9881,"stargazers_count":3,"open_issues_count":6,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-28T03:23:40.042Z","etag":null,"topics":["cidaas","ios","oauth2","oidc","openid-connect"],"latest_commit_sha":null,"homepage":"https://www.cidaas.com","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cidaas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-01T09:59:19.000Z","updated_at":"2025-03-11T14:47:10.000Z","dependencies_parsed_at":"2024-12-05T10:22:49.035Z","dependency_job_id":"8676fc2f-8f16-441f-8c63-6e1323ff1f3f","html_url":"https://github.com/Cidaas/cidaas-sdk-ios-v2","commit_stats":{"total_commits":219,"total_committers":8,"mean_commits":27.375,"dds":"0.14155251141552516","last_synced_commit":"3ffeee37546dab41253df7c6747f8f5d7ac9a6e5"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cidaas%2Fcidaas-sdk-ios-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cidaas%2Fcidaas-sdk-ios-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cidaas%2Fcidaas-sdk-ios-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cidaas%2Fcidaas-sdk-ios-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cidaas","download_url":"https://codeload.github.com/Cidaas/cidaas-sdk-ios-v2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248895337,"owners_count":21179224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cidaas","ios","oauth2","oidc","openid-connect"],"created_at":"2025-01-22T05:29:07.220Z","updated_at":"2026-03-05T23:41:47.583Z","avatar_url":"https://github.com/Cidaas.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](https://raw.githubusercontent.com/Cidaas/cidaas-sdk-ios-v2/master/logo.jpg)\n\n## About cidaas:\n[cidaas](https://www.cidaas.com)\n is a fast and secure Cloud Identity \u0026 Access Management solution that standardises what’s important and simplifies what’s complex.\n\n## Feature set includes:\n* Single Sign On (SSO) based on OAuth 2.0, OpenID Connect, SAML 2.0 \n* Multi-Factor-Authentication with more than 14 authentication methods, including TOTP and FIDO2 \n* Passwordless Authentication \n* Social Login (e.g. Facebook, Google, LinkedIn and more) as well as Enterprise Identity Provider (e.g. SAML or AD) \n* Security in Machine-to-Machine (M2M) and IoT\n\n# Cidaas SDK for IOS V2\n[![Platform](https://img.shields.io/badge/Platforms-iOS-4E4E4E.svg?colorA=28a745)](#installation)\n\nThe steps here will guide you through setting up and managing authentication and authorization in your apps using cidaas SDK.\n\n## Table of Contents\n\n\u003c!--ts--\u003e\n* [Installation](#installation)\n* [Getting started](#getting-started)\n* [Migrating to Cidaas V3](#migrating-to-cidaas-v3)\n* [Getting Client Id and urls](#getting-client-id-and-urls)\n* [Usage](#usage)\n    \u003c!--ts--\u003e\n    * [Native Browser Login](#native-browser-login)\n        \u003c!--ts--\u003e\n        * [Classic Login](#classic-login)\n        * [Social Login](#social-login)\n        \u003c!--te--\u003e\n    * [Embedded Browser Integration](#wkwebview-integration)\n    * [Native UI Integration](PureNativeLogin.md)\n    * [Verification Integration](Passwordless.md)\n    \u003c!--te--\u003e\n\n\n#### Installation\n\n#### Swift Package Manager\n\nOpen the following menu item in Xcode:\n\n**File \u003e Add Packages...**\n\nIn the **Search or Enter Package URL** search box enter this URL: \n\n```text\nhttps://github.com/Cidaas/cidaas-sdk-ios-v2\n```\n\nThen, select the dependency rule and press **Add Package**.\n\n\n#### Cocoapods\n\nAdd the following line to your `Podfile`:\n\n```\npod 'Cidaas'\n```\n\nTo use only core functionality and to reduce the size of the dependency\n\n```\npod 'Cidaas/Core'\n```\n\n#### Getting started\n\nThe following steps are to be followed to use this cidaas SDK.\n\nCreate a plist file named \u003cb\u003eCidaas.plist\u003c/b\u003e and fill all the inputs in key value pair. The inputs are mentioned below.\n\nA sample plist file would look like this :\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n    \u003cdict\u003e\n        \u003ckey\u003eDomainURL\u003c/key\u003e\n        \u003cstring\u003eYour Domain URL\u003c/string\u003e\n        \u003ckey\u003eRedirectURL\u003c/key\u003e\n        \u003cstring\u003eYour redirect url\u003c/string\u003e\n        \u003ckey\u003eClientId\u003c/key\u003e\n        \u003cstring\u003eYour client id\u003c/string\u003e\n        \u003ckey\u003eCidaasVersion\u003c/key\u003e\n        \u003cstring\u003eYour instances major Cidaas Version\u003c/string\u003e\n    \u003c/dict\u003e\n\u003c/plist\u003e\n```\n\n## Migrating to Cidaas V3\n\nCidaas V3 has response handling adjustment on some of the cidaas service calls. To migrate to cidaas V3, you need to do the following:\n\n* Ensure that you use at least cidaas version: 3.97.0. You can find the cidaas version from cidaas service portal, and ask our customer service if it needs to be updated.\n* Ensure that you use at least cidaas-ios-sdk version: 1.3.2\n* add CidaasVersion  to \u003cb\u003eCidaas.plist\u003c/b\u003e\n\nFor Example:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n    \u003cdict\u003e\n        \u003ckey\u003eDomainURL\u003c/key\u003e\n        \u003cstring\u003eYour Domain URL\u003c/string\u003e\n        \u003ckey\u003eRedirectURL\u003c/key\u003e\n        \u003cstring\u003eYour redirect url\u003c/string\u003e\n        \u003ckey\u003eClientId\u003c/key\u003e\n        \u003cstring\u003eYour client id\u003c/string\u003e\n        \u003ckey\u003eCidaasVersion\u003c/key\u003e\n        \u003cstring\u003e3\u003c/string\u003e\n    \u003c/dict\u003e\n\u003c/plist\u003e\n```\n\nThe following sections will help you to generate some of the information that is needed for plist.\n\n#### Getting Client Id and urls\nWhen you are integrating your own Business App with, you may want to modularize the interactions and attributes. There are  like Scope, Roles, Grant-Types, re-direct URLs etc., that you may want to group into one configuration/settings. This can be done by creating  App or Client.\n\n\n#### Initialization\n\nThe first step to integrate cidaas sdk is the initialization process.\n\n```swift\nvar cidaas = Cidaas();\n```\nor use the shared instance\n\n```swift\nvar cidaas = Cidaas.shared\n```\n\n#### Usage\n\n#### Native Browser Login \n#### Classic Login\nYou can login using your native browser and you will be redirected to the App after successful login. To login with your native browser call ****loginWithBrowser()****.\n\n```swift\nvar extraParams = Dictionary\u003cString, String\u003e()\nextraParams[scopes]=\"offline_access phone\"\ncidaas.loginWithBrowser(delegate: self, extraParams: extraParams) {\n    switch $0 {\n        case .success(let successResponse):\n            // your success code here\n            break\n        case .failure(let error):\n            // your failure code here\n            break\n    }\n}\n```\n\n#### Social Login\nYou can also perform social login using your native browser and you will be redirected to the App after successful login. To perform social login call ****loginWithSocial()****.\n\n```swift\ncidaas.loginWithSocial(provider: \"your_social_provider\", delegate: self) { \n    switch $0 {\n        case .success(let successResponse):\n            // your success code here\n            break\n        case .failure(let error):\n            // your failure code here\n            break\n    }\n}\n```\nwhere social provider may be either facebook, google, linkedin or any other providers\n\nUse [customScheme](https://developer.apple.com/documentation/uikit/core_app/communicating_with_other_apps_using_custom_urls#2928963) or [universalLinks](https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html) to return back the control from browser to App.\n\n    Note : Don't forget to add the custom scheme url in your App's redirect url section\n\n## WKWebview integration\n\nDrag and drop an empty view in the storyboard\n\nChange the name of the class in the properties window as **CidaasView**\n\nCreate an IBOutlet for the class and consider this as an object\n\n```swift\n@IBOutlet var cidaasView: CidaasView! \n```\n\nInherit the WKNavigationDelegate and call the methods\n\n```swift\nfunc webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {\n    cidaasView.webView(webView, didStartProvisionalNavigation: navigation)\n}\n\nfunc webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {\n    cidaasView.webView(webView, didFail: navigation, withError: error)\n}\n\nfunc webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -\u003e Void) {\n    cidaasView.webView(webView, decidePolicyFor: navigationAction, decisionHandler: decisionHandler)\n}\n\nfunc webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {\n    cidaasView.webView(webView, didFinish: navigation)\n}\n```\n   \nCall the **loginWithEmbeddedBrowser()** function and get the access token as callback\n   \n```swift\ncidaasView.loginWithEmbeddedBrowser(delegate: self) {\n    switch $0 {\n        case .success(let successResponse):\n            // your success code here\n            break\n        case .failure(let error):\n            // your failure code here\n        break\n    }\n}  \n```\n\n## Screenshots\n\u003cp align=\"center\"\u003e\n\n\u003cimg src = \"https://user-images.githubusercontent.com/26590601/35260372-3b424b8a-0031-11e8-93be-598f473ac753.png\" alt=\"Screen 1\" style=\"width:40%\" height=\"600\"\u003e\n\n\u003cimg src = \"https://user-images.githubusercontent.com/26590601/35260352-18800f2e-0031-11e8-908e-85b98c306e99.png\" alt=\"Screen 2\" style=\"width:40%\" height=\"600\"\u003e\n\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcidaas%2Fcidaas-sdk-ios-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcidaas%2Fcidaas-sdk-ios-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcidaas%2Fcidaas-sdk-ios-v2/lists"}