Integrate the Sudo Profiles SDK
Integrate the Sudo Profiles SDK into your application
To use Sudo Profiles SDK in an iOS app you need to install `SudoProfiles` pod via CocoaPods.
Install CocoaPods by running the following command:
shell
sudo gem install cocoapods
Initialize CocoaPods for your app project by running the following command:
shell
pod init
Open the createdPodfile
in a text editor and addSudProfiles
pod a dependency to your app target.
Podfile
target 'YOUR-APP-NAME' do
use_frameworks!
pod 'SudoProfiles'
# other pods
end
Install pod dependencies by running the following command:
shell
pod install --repo-update
Instantiating and initializing a client:
Swift
do {
let client: SudoProfilesClient = try DefaultSudoProfilesClient(sudoUserClient: sudoUserClient, blobContainerURL: blobContainerURL)
} catch let error {
// Handle initialization error. An error might be thrown due to invalid
// or missing confiugration file.
}
You only need one client instance for a given user per device. Instantiating multiple clients with the same configuration and using them at the same time may cause unexpected runtime errors to occur.
To use Sudo Profiles SDK in an Android app you need to add
SudoProfiles
library as a dependency to your project.Edit the app module Gradle script (build.gradle) and addSudoProfiles
library as a dependency.
gradle
dependencies {
api 'com.sudoplatform:sudoprofiles:$latest_version'
}
Edit AndroidManifest.xml to add the following app permissions:
Diff
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
package="com.sudoplatform.sampleapp">
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
+ tools:replace="android:allowBackup"
+ android:allowBackup="false"
Instantiating and initializing a client:
Kotlin
val client = SudoProfilesClient
.builder(appContext, sudoUserClient, blobContainerUri)
.build()
You only need one client instance for a given user per device. Instantiating multiple clients with the same configuration and using them at the same time may cause unexpected runtime errors to occur.
To use the Sudo Profiles SDK in a JS project you must add
@sudoplatform/sudo-profiles
as a dependency to your projectyarn add '@sudoplatform/sudo-profiles'
# or
npm install --save '@sudoplatform/sudo-profiles'
Instantiating and initializing a Sudo Profiles client:
TypeScript
import {
DefaultSudoProfilesClient,
} from '@sudoplatform/sudo-profiles'
// Instantiate and initialize the client
const sudoProfilesClient = new DefaultSudoProfilesClient({
sudoUserClient: sudoUserClient,
})
You only need one client instance for a given user per device. Instantiating multiple clients with the same configuration and using them at the same time may cause unexpected runtime errors to occur.
Symmetric keys are used in Sudo Profiles JS SDK to encrypt and decrypt Sudo claims. These keys are not stored within our system and need to be loaded into the Sudo Profile Client to be able to encrypt and decrypt your Sudo claims data. These symmetric keys can also be rotated, therefore a potential list of keys will need to be set. The storage and management of these keys will also be the responsibility of the consumer of the Sudo Profiles JS SDK.
Adding Symmetric keys to Sudo Profiles Client:
TypeScript
sudoProfilesClient.pushSymmetricKey('1234', '14A9B3C3540142A11E70ACBB1BD8969F')
Symmetric keys are loaded into the Sudo Profiles Client after the client has been instantiated and initialized. Any old keys that have been used in the past to encrypt Sudo claims will also need to be set so that those Sudo claims can be decrypted. The last key loaded will be set as the current key for encrypting and decrypting new Sudo claims.
It is a requirement that the Sudo Profiles Client be loaded with at least one symmetric key.
Last modified 1yr ago