Android Authentication
The userIdentifier
parameter should be used to identify users to the Integration server, which should return a different access token for each user
val tokenProvider = TokenProvider.fromLambda { oldAuthToken, userIdentifier, listener ->
// The Sensibill SDK calls this method when a new token is required.
// Provide new valid token for user matching userIdentifier
MyIntegrationServer.fetchNewAccessToken(object : IntegrationServerListener {
override fun onNewAccessTokenRetrieved(newAccessToken: String?) {
if (!newAccessToken.isNullOrEmpty()) {
// Pass new access token to SDK via the `onTokenProvided` method
listener.onTokenProvided(newAccessToken)
} else {
// If unable to provide new access token, call the `onFailed` method
listener.onFailed("Couldn't retrieve new token!")
}
}
})
}
final TokenProvider tokenProvider = new TokenProvider() {
@Override
public void provideTokenReplacement(@Nullable String oldAuthToken, @NotNull String userIdentifier, @NotNull TokenProvider.OnTokenProviderListener listener) {
// The Sensibill SDK calls this method when a new token is required.
// Provide new valid token for user matching userIdentifier.
MyIntegrationServer.fetchNewAccessToken(new IntegrationServerListener() {
@Override
public void onNewAccessTokenRetrieved(String newAccessToken) {
if (newAccessToken != null && !newAccessToken.isEmpty()) {
// Pass new access token to SDK via the `onTokenProvided` method
listener.onTokenProvided(newAccessToken);
} else {
// If unable to provide new access token, call the `onFailed` method
listener.onFailed("Couldn't retrieve new token!");
}
}
});
}
};