【问题标题】:Mixing client-side authentication with server-side authentication混合客户端身份验证和服务器端身份验证
【发布时间】:2011-11-04 11:55:35
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    希望对你有帮助

    【讨论】:

    • 谢谢。那是一个非常好的指针。当我将 oauth 设置为 true 并去寻找那个 cookie 时,我立刻让它工作了。更好的是我开始阅读那个博客;)
    • 那个链接好像失效了。有更新的吗?
    【解决方案2】:
    1. 在客户端验证中,您可以通过在浏览器级别快速响应来提供更好的用户体验。当您执行客户端验证时,所有用户输入都会在用户浏览器本身中进行验证。客户端验证不需要往返服务器,因此网络流量将有助于您的服务器更好地执行。这种类型的验证是在浏览器端使用 JavaScript、VBScript 或 HTML5 属性等脚本语言完成的。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多