3

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

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

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

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

4

2 回答 2

7

facebook中的以下示例是否适合您 http://developers.facebook.com/blog/post/534/

它将 javascript 与 php SDK 相结合,您应该检查一些附加信息

希望这可以帮助

于 2011-08-26T17:27:49.527 回答
0
  1. 在客户端验证中,您可以通过在浏览器级别快速响应来提供更好的用户体验。当您执行客户端验证时,所有用户输入都会在用户浏览器本身中进行验证。客户端验证不需要往返服务器,因此网络流量将有助于您的服务器更好地执行。这种类型的验证是在浏览器端使用 JavaScript、VBScript 或 HTML5 属性等脚本语言完成的。

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

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

    由于两种验证方式都有各自的意义,建议Server端验证更安全!

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

于 2020-08-13T09:28:28.920 回答