javascript、jquery或django中的HTTP基本身份验证?
我正在开发一个web应用程序(a),作为另一个网站(B)的“前端”,它需要基本的HTTP身份验证(即弹出并要求输入用户名和密码的那种) 在我的web应用程序中,每个用户都已经将其B的用户名和密码存储为其A帐户的一部分。但是,当用户第一次尝试从A访问B中的资源时,它会提示输入用户名和密码(但在会话的其余部分不再需要)。我希望这样,用户永远不必显式地输入他的凭据(因为它们已经存储在他的帐户中) 使用javascript/jquery或某些Django代码,是否可以在后台对该用户进行先发制人的身份验证,例如当他们登录到一个数据库时?因此,只需使用用户名和密码向B中的某个资源发送请求即可javascript、jquery或django中的HTTP基本身份验证?,javascript,jquery,django,http-authentication,Javascript,Jquery,Django,Http Authentication,我正在开发一个web应用程序(a),作为另一个网站(B)的“前端”,它需要基本的HTTP身份验证(即弹出并要求输入用户名和密码的那种) 在我的web应用程序中,每个用户都已经将其B的用户名和密码存储为其A帐户的一部分。但是,当用户第一次尝试从A访问B中的资源时,它会提示输入用户名和密码(但在会话的其余部分不再需要)。我希望这样,用户永远不必显式地输入他的凭据(因为它们已经存储在他的帐户中) 使用javascript/jquery或某些Django代码,是否可以在后台对该用户进行先发制人的身份验证
谢谢,我希望这个问题很清楚。简短的回答是,如果不引入涉及B后端的通用身份验证/安全令牌共享等机制,您可能无法做到这一点 由于B可能是不同的来源,因此将阻止您从a提供的页面向B发出请求 如果您能够更改B后端,那么当用户登录到a时,您可以从a上的页面向B发出JSONP请求(即不是通过HTTP头进行基本身份验证)
另请参阅不同解决方案的灵感。简短的回答是,如果不引入涉及B后端的通用身份验证/安全令牌共享等机制,您可能无法做到这一点 由于B可能是不同的来源,因此将阻止您从a提供的页面向B发出请求 如果您能够更改B后端,那么当用户登录到a时,您可以从a上的页面向B发出JSONP请求(即不是通过HTTP头进行基本身份验证)
另请参阅不同解决方案的灵感。我相信您可以将其直接粘贴在URL中
我相信你可以在URL中直接看到这一点 jQuery ajax()方法支持带有选项“username”和“password”的HTTP身份验证 : 如果服务器在提供响应之前执行HTTP身份验证,则可以通过用户名和密码选项发送用户名和密码对 B.VB.: 只需向B中的某个资源发送一个带有用户名和密码的请求即可 我没有测试,但绝对值得一试。可能只要服务器授权了客户端,它就不应该再次提示客户端输入凭据,因此值得一试。jQuery ajax()方法支持带有选项“username”和“password”的HTTP身份验证 : 如果服务器在提供响应之前执行HTTP身份验证,则可以通过用户名和密码选项发送用户名和密码对 B.VB.: 只需向B中的某个资源发送一个带有用户名和密码的请求即可
我没有测试,但绝对值得一试。可能只要服务器授权客户端,它就不应该再次提示客户端输入凭据,这样就值得一试。这样任何人都可以看到您的密码?@Secator。。。这是基本的HTTP身份验证。任何人都可以看到您的密码,因为HTTP是纯文本协议。事实上,你的浏览器就是这样做的,只是没有告诉你。最理想的情况是,这应该通过SSL实现,但这不是当前的问题。问题是如何进行身份验证,这是最快的方法。这样任何人都能看到你的密码?@Secator。。。这是基本的HTTP身份验证。任何人都可以看到您的密码,因为HTTP是纯文本协议。事实上,你的浏览器就是这样做的,只是没有告诉你。最理想的情况是,这应该通过SSL实现,但这不是当前的问题。问题是如何进行身份验证,这是最快的方法。好的,但是您将如何向可能位于另一个来源上的其他网站发出XHR请求?好的,但是您将如何向另一个可能位于其他来源的网站发出XHR请求?A和B在完全不同的域上吗?A和B在完全不同的域上吗?