簡體   English   中英

放大身份驗證事件在 android 中不起作用

[英]Amplify Auth events don't work in android

我正在開發使用來自 AWS Amplify 庫的身份驗證的應用程序。 我試圖通過查看 Amplify 的身份驗證事件來檢查登錄狀態,但它不起作用。 我試圖用 logcat 進行驗證,但它只顯示了 fetch 的輸出。

Amplify.Auth.fetchAuthSession(
    result -> Log.i("AmplifyQuickstart", result.toString()),
    error -> Log.e("AmplifyQuickstart", error.toString())
);

Amplify.Hub.subscribe(HubChannel.AUTH, hubEvent -> {
    if (hubEvent.getName().equals(InitializationStatus.SUCCEEDED.toString())) {
        Log.i("AuthQuickstart", "Auth successfully initialized");
    } else if (hubEvent.getName().equals(InitializationStatus.FAILED.toString())) {
        Log.i("AuthQuickstart", "Auth failed to succeed");
    } else {
        switch (AuthChannelEventName.valueOf(hubEvent.getName())) {
            case SIGNED_IN:
                Log.i("AuthQuickstart", "Auth just became signed in.");
                break;
            case SIGNED_OUT:
                Log.i("AuthQuickstart", "Auth just became signed out.");
                break;
            case SESSION_EXPIRED:
                Log.i("AuthQuickstart", "Auth session just expired.");
                break;
            default:
                Log.w("AuthQuickstart", "Unhandled Auth Event: " + AuthChannelEventName.valueOf(hubEvent.getName()));
                break;
        }
    }
});

我成功處理問題的一種方法是將錯誤 lambda 引用傳遞給errorAuthenticationHandle函數,如下所示:

Amplify.Auth.signIn(this.userName, password,
    result -> Log.i("AuthQuickstart", result.isSignInComplete() ?
        "Sign in succeeded" : "Sign in not complete"),
    this::errorAuthenticationHandle
);

private void errorAuthenticationHandle(AuthException error) {
    Log.e("AmplifyQuickstart", error.toString());

    switch (getErrorNumber(error)) {
        // Server require password reset
        case RESET:
            // Some code
            break;

        case FAILED:
            // Some code
            break;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM