我目前正在使用Facebook Javascript API允许用户按如下方式登录我的应用:
<html>
<head>
<title>My Facebook Login Page</title>
</head>
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId:'YOUR_APP_ID', cookie:true,
status:true, xfbml:true
});
</script>
<fb:login-button>Login with Facebook</fb:login-button>
</body>
</html>
然后我使用ruby来检查生成的'fbs _...'cookie,从而验证用户身份。从这一点来说,我不确定我是否应该处理我自己的会话,我们使用创建的cookie来检查用户是否有效 - 当他们登录Facebook时,他们应该保持登录我的应用程序?如果没有,我怎么可能实现注销功能?
答案 0 :(得分:0)
您可以使用API本身对用户进行身份验证
FB.getLoginStatus(function(response) {
if (response.session) {
// logged in and connected user, someone you know
} else {
// no user session available, someone you dont know
}
});
api也提供注销
FB.logout(callback);
FB文档很差......但是无论如何看,它是获取最新修改的唯一途径。
答案 1 :(得分:0)
就个人而言,我会使用sinatra来管理用户数据,并使用Omniauth将Facebook视为身份验证提供商。
Ominauth或类似的解决方案允许用户保持登录应用程序,即使a)他们退出Facebook或b)FB cookie消失。用户还可以退出应用程序而无需退出Facebook。您还可以存储有关非Facebook用户的其他数据。以下是Sinatra with Omniauth的示例。在回调中,您将在成功验证后设置会话cookie。您还可以使用提供程序中的信息填充会话或用户模型,以便保留该信息。
另外,您还可以使用support more providers like OpenID,Google Apps甚至Twitter而不是Facebook。