An android library to simplify the usage of Authentication with The1 Platform
Add this line in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' } // this line
}
}
Add this line in your app build.gradle:
dependencies {
implementation 'com.github.The1Central:T1PSDK-Android:LATEST_VERSION' // this line
}
- Define environment(SIT, UAT, PVT, PROD), client Id, redirect URI and language for
T1PSDK
Example:
class MainActivity : AppCompatActivity() {
private lateinit var t1PSDK: T1PSDK
override fun onCreate(savedInstanceState: Bundle?) {
...
t1PSDK = T1PSDK(
activity = this,
environment = T1PEnvironment.PROD,
redirectUrl = "VALUE FROM The1 Engineering Teams",
clientId = "VALUE FROM The1 Engineering Teams",
language = T1PLanguage.EN
)
}
}
- To start sign in
sdk.signIn()
- When sign in success T1PSDK will save access token, refresh token, expire time to Encrypted Shared Preference
Example:
class MainActivity : AppCompatActivity() {
private lateinit var t1PSDK: T1PSDK
private val signInActivityResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
result.data?.getParcelableExtra<AuthToken>(InitialPage.SIGN_IN.value)
?.let { authToken ->
//authToken is value from T1PSDK
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
...
t1PSDK = T1PSDK(
activity = this,
environment = T1PEnvironment.PROD,
redirectUrl = "VALUE FROM The1 Engineering Teams",
clientId = "VALUE FROM The1 Engineering Teams",
language = T1PLanguage.EN
)
t1PSDK.signIn(onActivityResult = signInActivityResult)
}
}
- To start sign up
sdk.signUp()
- When sign up success T1PSDK will save access token, refresh token, expire time to Encrypted Shared Preference
Example:
class MainActivity : AppCompatActivity() {
private lateinit var t1PSDK: T1PSDK
private val signUpActivityResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
result.data?.getParcelableExtra<AuthToken>(InitialPage.SIGN_UP.value)
?.let { authToken ->
//authToken is value from T1PSDK
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
...
t1PSDK = T1PSDK(
activity = this,
environment = T1PEnvironment.PROD,
redirectUrl = "VALUE FROM The1 Engineering Teams",
clientId = "VALUE FROM The1 Engineering Teams",
language = T1PLanguage.EN
)
t1PSDK.signUp(onActivityResult = signUpActivityResult)
}
}
- To start recovery
sdk.recovery()
- When recovery success T1PSDK will save access token, refresh token, expire time to Encrypted Shared Preference
Example:
class MainActivity : AppCompatActivity() {
private lateinit var t1PSDK: T1PSDK
private val recoveryActivityResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
result.data?.getParcelableExtra<AuthToken>(InitialPage.RECOVERY.value)
?.let { authToken ->
//authToken is value from T1PSDK
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
...
t1PSDK = T1PSDK(
activity = this,
environment = T1PEnvironment.PROD,
redirectUrl = "VALUE FROM The1 Engineering Teams",
clientId = "VALUE FROM The1 Engineering Teams",
language = T1PLanguage.EN
)
t1PSDK.recovery(onActivityResult = recoveryActivityResult)
}
}
- To get access token
sdk.accessToken()
Example:
class MainActivity : AppCompatActivity() {
private lateinit var t1PSDK: T1PSDK
override fun onCreate(savedInstanceState: Bundle?) {
...
t1PSDK = T1PSDK(
activity = this,
environment = T1PEnvironment.PROD,
redirectUrl = "VALUE FROM The1 Engineering Teams",
clientId = "VALUE FROM The1 Engineering Teams",
language = T1PLanguage.EN
)
t1PSDK.accessToken(object : T1PSdkAccessTokenCallback {
override fun onSuccess(authToken: AuthToken) {
//authToken is value from T1PSDK
}
override fun onFailure(t1pSdkFailed: T1PSdkFailedEnum) {
//Type of Failed Exception
}
})
}
}
- To start sign out
sdk.signOut()
- When sign out success or failure T1PSDK will remove access token, refresh token, expire time in Encrypted Shared Preference
Example:
class MainActivity : AppCompatActivity() {
private lateinit var t1PSDK: T1PSDK
override fun onCreate(savedInstanceState: Bundle?) {
...
t1PSDK = T1PSDK(
activity = this,
environment = T1PEnvironment.PROD,
redirectUrl = "VALUE FROM The1 Engineering Teams",
clientId = "VALUE FROM The1 Engineering Teams",
language = T1PLanguage.EN
)
t1PSDK.signOut(object : T1PSdkCallback {
override fun onSuccess() {
//Notify logout success
}
override fun onFailure() {
//Notify logout failure
}
})
}
}