如何执行jQuery Ajax调用并在发送请求之前对调用进行身份验证?
我还没有登录,所以必须进行身份验证。安全性不是任何人都可以访问的问题,只需进行身份验证即可。这只是基本的http身份验证,您可以查看API http://lighthouseapp.com/api/the-basics
发布于 2010-07-30 22:29:23
由于您没有指定正在使用的身份验证类型,因此我将做一些大的假设,假设您有某种登录页面/操作,您可以将用户名和密码发送到这些页面/操作,并将其用作参数名称。如果您有其他字段--比如防止跨站点请求伪造的隐藏字段,那么也需要包含这些字段。我还将假设您知道您还没有通过身份验证。有一些方法可以检测到这一点,但我不打算介绍它们。我将进一步假设您正在发布到网站的操作,而不是需要单独类型的身份验证的API。
您要做的第一件事是使用正确的用户名/密码组合生成登录操作的POST (我假设)。如何获得这些取决于你自己。这将向您的网站验证您的身份,并为您的浏览器提供适当的身份验证cookie,以便与将来的请求一起发送。
您将需要检测和处理身份验证失败。如果您的登录操作知道可以通过AJAX调用它(使用HTML头是一个很好的选择),那么它可以返回带有状态设置的HTTP_X_REQUESTED_WITH,否则您将需要抓取返回的HTML来解决这个问题。
一旦拥有了身份验证cookie,就应该能够在不进行任何特殊处理的情况下发出实际的AJAX请求。
发布于 2010-07-30 21:59:27
如果您网站上的用户已经通过了身份验证,在大多数情况下,您不需要做任何事情- auth cookie将随AJAX调用一起发送。否则,您可以尝试HTTP Basic身份验证。
发布于 2010-07-30 22:05:12
如果您试图让javascript在没有任何用户交互的情况下进行身份验证,请不要这样做。
将身份验证逻辑硬编码到客户端可用的代码中可能会严重损害API的安全性。如果你打算把用户名/密码放入你的javascript中,那为什么还要用呢?
如果您有权访问API并可以修改身份验证,则可以尝试使用令牌系统进行身份验证。只有我的$.02
https://stackoverflow.com/questions/3372137
复制相似问题