Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过Facebook SSO获取短期令牌_Android_Ios_Facebook_Facebook Graph Api - Fatal编程技术网

Android 通过Facebook SSO获取短期令牌

Android 通过Facebook SSO获取短期令牌,android,ios,facebook,facebook-graph-api,Android,Ios,Facebook,Facebook Graph Api,我有一个使用SSO的android/ios Facebook应用程序 然后,客户端将访问令牌发送给my serer,该serer调用“+accessToken以使用我的服务对用户进行身份验证(匹配facebook id) 我的问题是访问令牌有60天的过期日期。这意味着用户可能已从应用程序注销,但访问令牌仍然有效 我要寻找的是一个访问令牌,只有在用户登录应用程序/一段时间后(例如1小时)才有效。原因是我考虑到了安全性,Facebook SSO已被应用程序用户名/密码取代,但我认为没有好的方法来验证

我有一个使用SSO的android/ios Facebook应用程序

然后,客户端将访问令牌发送给my serer,该serer调用“+accessToken以使用我的服务对用户进行身份验证(匹配facebook id)

我的问题是访问令牌有60天的过期日期。这意味着用户可能已从应用程序注销,但访问令牌仍然有效

我要寻找的是一个访问令牌,只有在用户登录应用程序/一段时间后(例如1小时)才有效。原因是我考虑到了安全性,Facebook SSO已被应用程序用户名/密码取代,但我认为没有好的方法来验证我的服务器。似乎Facebook SSO对客户端很好,对服务器很弱。访问令牌必须比这个多。你知道吗?

你需要做的是当用户注销你的应用时

编辑:

从:

通过web登录生成的Access令牌是短期令牌,但您可以将其升级为长期令牌。将短期令牌转换为长期令牌将在本文档后面的下介绍

使用Facebook的移动SDK的移动应用程序可以获得长寿命代币


因此,如果您正在使用SDK,则无法为您的应用程序生成短期令牌。您可以做的最好的事情是在用户注销应用程序时致电服务器删除存储的访问令牌。

问题是用户必须再次授权应用程序。这会造成糟糕的用户体验。Facebook将SSO作为一种方式为了删除你自己的用户AUTH,但是我在服务器上看不到干净的解决方案。好像它是为客户端设计的,谢谢。脸谱网SSO是一个客户端,那时非常脆弱,不适合替换你自己的用户名/密码。真的很遗憾,因为我知道有两个登录!@ USER 2559250为什么你认为OAuthH是弱的?它不是OAuthe。我认为使用SSO时服务器端验证很弱。如果我删除用户名/密码,我看不出如何依赖访问令牌来验证服务器上的用户。如果访问令牌在注销时无效,那么这是有意义的。问题是facebook SSO没有服务器端验证,这几乎是无用的对于需要对用户服务器端进行身份验证的用户。@user2859250您不应该仅依靠访问令牌来验证用户,尤其是因为访问令牌可以而且将要更改。您应该使用不可变的数据点,例如用户的Facebook用户ID。我在服务器端通常采用的方法是:1.调用t他使用Facebook API检索用户的图形对象(这将验证令牌);2.将图形对象中的用户ID与从应用程序接收的用户ID进行比较(这将验证用户ID),然后与存储在我的数据库中的用户ID进行比较以检索我的应用程序用户。