如何解决放大Auth事件在android中不起作用
我正在开发一个使用AWS Amplify库中的身份验证的应用程序。 我试图通过查看Amplify的auth事件来检查登录状态,但是它 不起作用。我试图用logcat进行验证,但只显示了输出 提取。
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;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。