Android Facebook身份验证令牌交换
是否可以使用Android applicaton从Facebook检索到的身份验证令牌对服务器端的用户进行身份验证? 换句话说,Android应用程序使用SSO并获取身份验证令牌。然后将此令牌发送到部署在Google App Engine上的后端应用程序。然后,后端应用程序使用令牌根据Facebook验证用户Android Facebook身份验证令牌交换,android,facebook,google-app-engine,Android,Facebook,Google App Engine,是否可以使用Android applicaton从Facebook检索到的身份验证令牌对服务器端的用户进行身份验证? 换句话说,Android应用程序使用SSO并获取身份验证令牌。然后将此令牌发送到部署在Google App Engine上的后端应用程序。然后,后端应用程序使用令牌根据Facebook验证用户 我猜这是不可行的,因为检索到的令牌只能由Android应用程序使用,但谁知道呢?也许它可以被重新使用?Facebook实际上有一个Android SDK,可以让你这样做。可以找到相关信息。
我猜这是不可行的,因为检索到的令牌只能由Android应用程序使用,但谁知道呢?也许它可以被重新使用?Facebook实际上有一个Android SDK,可以让你这样做。可以找到相关信息。是的,您可以。有效的访问令牌是有效的访问令牌。Graph API不知道令牌来自何处,但只有令牌具有访问Graph API该部分的适当权限。但是,请记住,代币仅在发行后24小时内有效。(这真的是一个词吗?)从发布之日起?当使用facebook android sdk和SingleSignOn(SSO)时,访问令牌格式实际上发生了变化。 而不是获取传统的身份验证令牌,该令牌包含用户ID和会话密钥作为身份验证令牌的一部分 现在我们得到了不同格式的authToken 由于Facebook开发人员仍在使用新格式化的访问令牌支持restapi 同时,我们可以在android facebook sdk上禁用SSO,方法是将默认的_AUTH_ACTIVITY_代码从32665(在facebook.java中)更改为-1 这将调用传统拨号方式来授予访问令牌,作为回报,您将获得包含会话密钥的访问令牌 那些想要生成安全会话密钥的人需要在Facebook.java中添加自己的方法 公共字符串getSessionSecret(字符串accessToken)引发格式错误的异常,IOException { Bundle b=新Bundle(); b、 putString(“方法”、“授权促销”); b、 putString(“访问令牌”,accessToken); b、 putString(“session_key_only”,“true”); 字符串响应=请求(b); 返回响应;
}您从Android API获得的令牌可以发送到您的服务器,服务器可以通过查询图形来检查令牌的有效性(例如,使用/me?auth_Token=..)。
问题在于,同一令牌可由任何第三方使用——它不是特定于客户端的——因此,如果您基于该令牌进行服务器标识,则会出现问题(因为第三方应用程序可以使用其用户令牌并由您进行身份验证)。我正在试图找到一种解决这个问题的方法,但我还没有好的想法…是的,我知道我可以在Android上进行单点登录。但问题是,我是否可以与我的后端应用程序交换身份验证令牌?