我开发了一个简单的API,允许我的Android / iPhone应用程序和我的服务器之间进行通信。在我的应用程序中,用户需要对自己进行身份验证,并使用登录/密码凭据进行以下API调用:
http://api.myapp.com/login?user=xxx&pass=pass
申请收到回报:
{ "api_token": "xxxx-xxxx-xxxx-xxxx" }
所以基本上我将我的凭据与api_token
交换。
我想添加Facebook连接支持。我已成功使用Facebook SDK并收到正确的access_token
。
但是,我需要实施一种机制来与access_token
api_token
假设用户已经将他的帐户与Facebook连接(在他的网络用户面板上),那么进行交换的最佳实施是什么?
答案 0 :(得分:5)
以下是我最终的表现。它工作了一年多,从来没有任何问题。我们的想法是使用以下API调用来交换令牌:
http://api.myapp.com/login/facebook?access_token=<facebook_access_token>
服务器端,您使用简单的
验证access_token
的有效性
wget -qO- https://graph.facebook.com/me?access_token=<facebook_access_token>
它会向您发送包含所有用户信息的JSON,包括用户的Facebook ID。假设用户已将其帐户连接到Facebook,您可以查找user_id
并发回api_token
。
答案 1 :(得分:0)
http://developers.facebook.com/docs/authentication/
最佳实施方案自然取决于您当前的平台。例如,有几个Ruby on Rails gems可以处理整个Open Authentication位。