简体   繁体   English

锁定Auth0 for android在验证时不返回UserProfile

[英]Lock Auth0 for android not returning UserProfile on authentication

I'm using Lock for providing Login functionality in my android App to users. 我正在使用Lock在我的Android App中为用户提供登录功能。

Here is my code: private Lock lock; 这是我的代码:私人锁定锁;

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));
}

I have following two questions: 1). 我有以下两个问题:1)。 First of all I don't understand why it needs callback though it doesn't callback even after authentication succeeded. 首先,我不明白它为什么需要回调,尽管即使在验证成功后它也不回调。 2). 2)。 Shouldn't LocalBroadcastManager get response with UserProfile information instead of token information? LocalBroadcastManager不应该使用UserProfile信息而不是令牌信息获得响应吗?

I'm using Lock version: com.auth0.android:lock:2.0.0-beta.2 我正在使用Lock版本:com.auth0.android:lock:2.0.0-beta.2

Is there any better way to do it? 有没有更好的方法呢?

Thanks in advance! 提前致谢!

have you tried onSuccess method? 你试过onSuccess方法吗? I cant see in your code, that's why it's not executing after successful attempt. 我无法在你的代码中看到,这就是为什么它在成功尝试后没有执行。

Override onSuccess method in your LockCallback callback , this will return UserProfile. LockCallback callback覆盖onSuccess方法,这将返回UserProfile。

/**
 * Callback for authentication API calls to Auth0 API.
 */
public interface AuthenticationCallback extends Callback {

    /**
     * Called when authentication is successful.
     * It might include user's profile and token information.
     * @param profile User's profile information or null.
     * @param token User's token information (e.g. id_token).
     */
    void onSuccess(UserProfile profile, Token token);

}

Source 资源

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM