跨域Ajax POST和用户验证

0 投票
1 回答
647 浏览
提问于 2025-04-16 13:25

我正在开发一个应用程序,它可以通过Ajax的POST方法从多个不同的网站保存数据到我的服务器/应用上。我需要找到一个办法,来发送POST请求并验证发送请求的用户是否已经在我的网站上登录,然后再把数据保存到数据库里。

我觉得我需要一个Chrome或Firefox的扩展程序来实现这个功能,因为我需要在用户浏览的每个页面上嵌入我的JavaScript代码。问题是我不知道从哪里开始,也不知道应该怎么做。我可以设置一个代理来让JSON的POST请求工作,但我不知道怎么验证用户是否已经登录我的网站。

我是不是应该通过Chrome的API从浏览器获取用户的cookies,然后把它们放在POST请求里,接着在Django中验证这些cookie或会话?你有什么建议吗?

谢谢你的帮助。我非常感激任何提示。

1 个回答

1

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

然后,当他从yourserver.com域名嵌入其他网站的任何JavaScript时,这些cookie会自动发送给这个域名。你可以在django那边检查这些cookie是否存在以及是否有效,然后提供合适的JavaScript。

由于跨域问题,建议使用表单POST作为替代,而不是AJAX,因为AJAX在安全性上有一些限制。你可以通过 使用iframe和JavaScript来让两个域名进行通信

要在另一个网站嵌入JavaScript,你可以使用浏览器扩展,或者一个简单的 书签小工具,当用户在任何网页上点击它时,它会在当前页面加载你的代码。

这是我个人的一些看法;

撰写回答