public class MainActivity extends AppCompatActivity {
private LoginButton facebookloginButton;
private CallbackManager callbackManager;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
facebookloginButton=(LoginButton)findViewById(R.id.facebook_login_button);
callbackManager=CallbackManager.Factory.create();
facebookloginButton.setReadPermissions("email", "public_profile");
facebookloginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
handleFacebookAccessToken(loginResult.getAccessToken());
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Toast.makeText(getApplicationContext(), "Error",Toast.LENGTH_LONG).show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
private void handleFacebookAccessToken(AccessToken token) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
FirebaseUser user = mAuth.getCurrentUser();
Intent intent=new Intent(getApplicationContext(),NextActivity.class);
// intent.putExtra("NAME",user.getDisplayName());
startActivity(intent);
finish();
} else {
// If sign in fails, display a message to the user.
Toast.makeText(getApplicationContext(), "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser = mAuth.getCurrentUser();
// currentUser.getDisplayName();
}
}
如果应用程序关闭并重新打开,我想让它显示NextActivity
从Facebook成功登录后,您可以将Auth令牌
保存在应用程序的Shared Preferences设置
中,然后无论何时启动应用程序,您都可以检查存储中是否保存了令牌,如果这意味着用户已经登录,并将其直接重定向到下一页或配置文件页。
以下是您可以做的小片段:
final static String PREFS_NAME = "AUTH"
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
setContentView(R.layout.activity_main);
// check if user is already logged in
// i.e. auth token is present or not
String token = settings.getString("auth_token", null);
// means user is logged in token was found
if (token != null) {
AUTH_TOKEN = token;
startActivity(new Intent(MainActivity.this, ProfileActivity.class));
}
}
// YOUR REST OF THE CODE ....
});
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
FirebaseUser user = mAuth.getCurrentUser();
// SAVE THE USER DETAILS OR PART OF IT IN SHARED PREFS
SharedPreferences.Editor editor = settings.edit();
editor.putString("USER", user);
editor.apply();
Intent intent=new Intent(getApplicationContext(),NextActivity.class);
// intent.putExtra("NAME",user.getDisplayName());
startActivity(intent);
finish();
} else {
// If sign in fails, display a message to the user.
Toast.makeText(getApplicationContext(), "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
这将起作用,因为每次在oncreate
方法中启动应用程序时,如果auth
文件存在,它将直接将用户发送到nextactivity
。
} 以下是我从logcat收到的错误:
我有一个名为logIn的活动,它会导致一个名为users not的活动。我希望防止users活动返回到logIn活动,因此a在users活动中添加了以下代码: 它工作得很好,但现在我希望用户能够注销,这样他就可以通过单击按钮返回到登录活动,我在用户活动中添加了一个按钮,并添加了onClickListener,如下所示: 但是,当我添加onClickListener时,当我单击登录按钮时,应用程序崩
问题内容: 对于典型的最典型的面向Internet的网站,当您通过关闭选项卡( 无需注销 )登录并离开该网站(然后 注销 ),然后再次访问时,可能不需要您重新指定凭据或登录,您可以直接登录。 这一切在后端如何发生?如何在我的JSF 2.1应用程序中启用这种机制? 在Tomcat7服务器上使用JSF 2.1 问题答案: 这基本上是通过一个长寿的cookie完成的。JSF API不提供此功能,因为它只
问题内容: 在我的应用程序中,我使用jsapi实现了Google注销。 现在,我需要在我的应用程序中单击一个按钮的同时从Google登出该用户。如何使用JavaScript实现此功能,或者至少每次用户登录时它都必须询问Google登录页面。 我已经尝试过,但是似乎没有用。 问题答案: OAuth概述:他/她说的用户是他/她吗? 我不确定您是否使用OAuth来登录Stack Overflow,例如“
用户登录 在用户登录App账号时调用以下登录方法,从而保证用户是以登录身份进行咨询,是区分会话的用户的唯一标识; 游客咨询不需要调用小能login方法,小能会自动生成一个游客身份标识,在客服端游客身份的用户名显示为:“游客+4位数字”。 App完全退出(被杀掉进程), 再次进入时, 在SDK初始化之后, 如果App本身账号是登录用户, 需要重新调用小能SDK登陆接口,同步用户身份【大多是针对App
登录与注销 用户登录 在App登录的地方,调用小能的login方法,目的是传递账号信息,为客服端显示用户信息。在App被杀死之后,sdk会保持用户的登录状态,不需要再次调用登录的方法。 uid作为用户的唯一标识需要保证唯一性,username可根据需要传入手机号、昵称等信息 /** * @param uid 必填,登录用户的id, 只能输入数字、英文字母和"@._—"四种字符,长度小于等于60位