将客户端身份验证与服务器端身份验证混合使用

时间:2011-08-26 12:23:50

标签: authentication facebook-javascript-sdk facebook-authentication

我正在努力将客户端身份验证与服务器端身份验证相结合,我感谢社区的帮助。我的应用程序很简单,所有用户都在Facebook上,所以我想使用FB小部件进行登录/身份验证和注册。

加载页面后,我检查FB.getLoginStatus,如果用户没有登录,则显示fb:login-button。然后用户按下登录按钮,我收到了auth.login事件。从这里开始,我对下一步行动有点不确定,我想知道我是否错过了一点。

我尝试将用户重定向到服务器,我希望我可以在那里使用php-sdk检查用户是否在没有任何模糊的情况下登录,但是当我执行$ facebook-> api('/ me ')我没有回应。

那么我应该如何以安全的方式将授权信息传递给服务器(我的应用程序不使用https),以便我可以确保用户在服务器端进行身份验证和授权,当我使用fb-时登录按钮?

2 个答案:

答案 0 :(得分:7)

来自facebook的以下示例适用于您 http://developers.facebook.com/blog/post/534/

它将javascript与php SDK相结合,还有一些你应该检查的其他信息

希望这会有所帮助

答案 1 :(得分:0)

  1. 在客户端验证中,您可以通过在浏览器级别快速响应来提供更好的用户体验。当您执行客户端验证时,所有用户输入都会在用户浏览器本身中得到验证。客户端验证不需要往返于服务器,因此网络流量将帮助您的服务器性能更好。此类验证是在浏览器端使用JavaScript,VBScript或HTML5属性等脚本语言完成的。

    例如,如果用户输入了无效的电子邮件格式,则可以在用户移至下一个字段之前立即显示错误消息,以便用户可以在提交表单之前更正每个字段。

    大多数客户端验证取决于JavaScript语言,因此,如果用户关闭JavaScript,它可以轻松绕过并将危险的输入提交给服务器。因此,客户端验证无法保护您的应用程序免受服务器资源和数据库的恶意攻击。

    由于两种验证方法都有其各自的意义,因此建议服务器端验证更加安全!

  2. 在服务器端验证中,将用户提交的输入发送到服务器,并使用服务器端脚本语言之一(例如Node.js)进行验证。在服务器端进行验证过程之后,将通过新的动态生成的网页将反馈发送回客户端。最好在服务器端验证用户输入,因为您可以防范恶意用户,这些恶意用户可以轻松绕过客户端脚本语言并将危险输入提交给服务器。