你在使用 Facebook Android SDK 吗?如果是这样,手动登录(使用用户电子邮件/密码)和 SSO(通过 Android Facebook 应用程序)非常相似,特别是在令牌处理方面。
例如,如果您查看 SDK 中的示例(位于 sdk\examples\simple\src\com\facebook\android),您将看到代码执行以下操作(在三个文件之间拆分)。
private static final String TOKEN = "access_token";
private static final String EXPIRES = "expires_in";
private static final String KEY = "facebook-session";
Facebook session = new Facebook(APP_ID);
SharedPreferences savedSession = context.getSharedPreferences(KEY, Context.MODE_PRIVATE);
session.setAccessToken(savedSession.getString(TOKEN, null));
session.setAccessExpires(savedSession.getLong(EXPIRES, 0));
if (session.isSessionValid()) {
session.authorize(mActivity, mPermissions, new LoginDialogListener());
}
因此,您必须在每次成功登录后将会话令牌保存在 SharedPreferences 中(在示例中也是如此),但authorize()
手动登录和 SSO 登录的令牌处理和登录 ( ) 是相同的(取决于 activityCode 参数)。