【问题标题】:Cross-domain Ajax POST and user verification跨域 Ajax POST 和用户验证
【发布时间】:2011-07-12 13:28:41
【问题描述】:

我正在开发应用程序,该应用程序通过 Ajax POST 方法将许多跨域的内容保存到我的服务器/应用程序。我需要找到一个解决方案,如何发送 POST 并验证发送它的用户是否已经在我的网站上签名,然后将其保存到数据库中。

我很确定我需要 Chrome、Firefox 扩展来做到这一点,因为我需要在我的用户浏览的每个页面上嵌入我的 js。问题是我不知道从哪里开始以及它应该如何工作。我可以设置代理以使 JSON POST 工作,但我不知道如何验证用户是否在我的网站上签名。

我是否应该通过 Chrome API 从浏览器获取用户的 cookie 并在 POST 中发送并在 Django 中验证 cookie/会话?你有什么建议?

感谢您的帮助。我很感激每一个提示。

【问题讨论】:

    标签: python ajax django


    【解决方案1】:

    当用户在http://yourserver.com 登录时,您可以设置一个永久cookie 来识别他。 (参见 django 中的 SESSION_EXPIRE_AT_BROWSER_CLOSECOOKIE_AGE 变量)

    然后,当他从 yourserver.com 域嵌入另一个站点的任何 JS 时,会自动为该域发送 cookie,您可以在 django 端检查 cookie 的存在和有效性并给出好的 JS。

    由于跨域问题,您最好使用表单 POST 作为 AJAX 的替代方案,因为它不受安全限制。然后你可以play with iframes and javascript to make both domains communicates

    要将 JS 嵌入另一个网站,您可以使用浏览器扩展程序,或简单的bookmarklet,当用户从任何网页单击它时,它将在当前页面加载您的代码。

    我的 2 美分;

    【讨论】:

    • JS托管在CDN上的情况如何?这将是一个高负载应用程序,这将产生大量请求。
    • 您可以在 CDN 上拥有主要脚本,而仅动态提供可变部分。
    • 三足 OAuth 怎么样?我的 JS 将与 Chrome、Firefox 扩展程序通信,如果扩展程序 OAuth 在服务器端未获得授权,他们最终将不得不登录并对其进行授权。是否可以通过我的(授权)扩展程序向我的服务器发送数据?
    • 是的,您的扩展程序可以将您想要的内容发送到您的服务器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2012-06-05
    • 2021-12-01
    • 2015-02-03
    相关资源
    最近更新 更多