http认证对话框没有弹出

时间:2018-06-18 04:37:28

标签: spring http security authentication redux

我正在尝试调用(spring)rest API,它使用Spring安全性使用摘要式身份验证进行保护,并尝试从redux前端访问它。我收到一个401响应回到前端,它有响应头WWW-Authenticate:也..但不幸的是我没有在我的前端输入http基本身份验证弹出用户名和密码。

有人可以帮我确定可能的原因吗?当我通过chrome直接点击我的rest API时,我能够弹出http身份验证。

enter image description here

1 个答案:

答案 0 :(得分:1)

不幸的是,XHR请求不会触发auth弹出窗口。只有当主要请求(您正在加载的html页面或从该页面进行的重定向)抛出401时,才会发生这种情况。

如果您在iframe中加载请求,也会触发身份验证屏幕。但是,使用基本身份验证屏幕提供的凭据不会传递给其他XHR请求。如果您确实使用了iframe,则应该使用某种cookie进行响应,并且随后的XHR请求不应再次需要基本的身份验证屏幕

您的选择是:

  1. 在您的javascript中捕获此错误,并使用您自己创建的某个界面询问密码。

  2. 在iframe(或其他会触发相同安全限制的请求)中发出相同的请求,并在成功时使用会话cookie进行响应,然后触发XHR。

  3. 制作登录用户界面并提前询问凭据,因为您需要它们来处理XHR请求。