Блокировка Auth0 для android, не возвращающая UserProfile при аутентификации
Я использую Lock для предоставления функций входа в мое приложение Android для пользователей.
Вот мой код: закрытый замок,
private LocalBroadcastManager broadcastManager;
private BroadcastReceiver authenticationReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String idToken = intent.getStringExtra("com.auth0.android.lock.extra.IdToken");
String tokenType = intent.getStringExtra("com.auth0.android.lock.extra.TokenType");
Log.i(TAG, "User logged in with " + idToken + " "+ tokenType);
}
};
//Not sure use of this callback though its not being called anytime.
private LockCallback callback = new AuthenticationCallback() {
@Override
public void onAuthentication(Credentials credentials) {
Log.d(TAG, "Authenticated");
}
@Override
public void onCanceled() {
Log.d(TAG, "Authentication cancelled");
}
@Override
public void onError(LockException error) {
Log.d(TAG, "Authentication Error");
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Auth0 auth0 = new Auth0(getString(R.string.auth0_clientId), getString(R.string.auth0_domain));
this.lock = Lock.newBuilder(auth0, callback)
.build();
broadcastManager = LocalBroadcastManager.getInstance(this);
broadcastManager.registerReceiver(authenticationReceiver, new IntentFilter("com.auth0.android.lock.action.Authentication"));
startActivity(this.lock.newIntent(this));
}
У меня есть два вопроса:
1). Прежде всего, я не понимаю, зачем ему нужен обратный вызов, хотя он не вызывает обратный вызов даже после успешной проверки подлинности.
2). Должен ли LocalBroadcastManager получать ответ с информацией о профиле пользователя вместо информации о токенах?
Я использую Lock версию: com.auth0.android:lock:2.0.0-beta.2
Есть ли лучший способ сделать это?
Спасибо заранее!
Ответы
Ответ 1
Вы пробовали метод onSuccess? Я не могу видеть в вашем коде, почему он не выполняется после успешной попытки.
Переопределите onSuccess
метод в LockCallback callback
, это вернет UserProfile.
/**
* Callback for authentication API calls to Auth0 API.
*/
public interface AuthenticationCallback extends Callback {
/**
* Called when authentication is successful.
* It might include user profile and token information.
* @param profile User profile information or null.
* @param token User token information (e.g. id_token).
*/
void onSuccess(UserProfile profile, Token token);
}