Joh*_*ohn 23 android firebase firebase-authentication
我正在开发一个小型Android应用程序,基本上到目前为止它只具有登录和注销功能.我正在使用Firebase来存储用户数据以及身份验证.
所以我登录工作并且它应该对用户进行身份验证,并且我已经注销了unauthenticates
用户的意义.但是在应用程序中有什么我必须做的才能杀死会话吗?
if (id == R.id.action_log_out) {
ref.unauth(); //End user session
startActivity(new Intent(MainActivity.this, LoginActivity.class)); //Go back to home page
finish();
}
Run Code Online (Sandbox Code Playgroud)
我觉得这会起作用吗?显然,如果有人退出,他们应该无法点击后退按钮并神奇地返回到最后一页而不重新登录.
Man*_*umi 26
来自Firebase文档
https://firebase.google.com/docs/auth/android/custom-auth
叫这个 FirebaseAuth.getInstance().signOut();
Fra*_*len 13
当Firebase对用户进行身份验证时(或者使用Firebase对用户进行身份验证),它会将该用户的令牌存储在设备的本地存储中.当您调用其中一个authWith...
方法时(当然只有成功验证用户身份)才会发生这种情况.
调用会ref.unauth();
立即从本地存储中删除该令牌.
当用户按下后退按钮时,正确实现的流程不会自动重新验证它们,但这取决于您实现的流程(您的问题中缺少这个流程,并且可能会有太多代码).
注销后,对于后退按钮,我看到2个选项:
在LoginActivity中,启动程序活动应为Override onBackPressed方法,并将其保留为空:
@Override
public void onBackPressed() {
// empty so nothing happens
}
Run Code Online (Sandbox Code Playgroud)
或者/并且如果用户== null,则可以在LogoutActivty中添加LoginActivityIntent。这样,每当一个未经身份验证的用户登录到该活动时,它都会立即重定向到LoginActivity,尽管这看起来有点奇怪。
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(TAG,"onAuthStateChanged:signed_out");
startActivity(new Intent(LogoutActivity.this, LoginActivity.class));
}
// ...
}
};
Run Code Online (Sandbox Code Playgroud)
First Option比较容易,但是我想您是否同时在保存方面都应用^^我现在编码了2周,所以如果我输入错误,请更正我。
归档时间: |
|
查看次数: |
39511 次 |
最近记录: |