问题标签 [angular-http-auth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3302 浏览

javascript - Angularjs - 在 $routeChangeError 之后删除最后一个历史条目

我有route一个resolve服务器端资源。该资源要求进行身份验证。所以我显示了一个可以取消的登录表单弹出窗口。取消时,路由/解析会正确获取rejected$routeChangeError触发。

问题是,我现在在地址栏中有那个失败的位置/网址和一个不必要的历史条目。

如何在不重新加载的情况下将当前位置 url 替换为最后一个?以及如何在路由更改失败后删除当前的历史记录?

编辑:我使用 angular-http-auth。这是我的路由:

/home> /item(必须解决需要身份验证的资源,当未登录时,会打开一个登录表单弹出窗口,可以取消)

当我取消身份验证时,会触发 $routeChangeError 并且/home 由于/item从未渲染,我仍在页面上。现在地址栏显示一个错误的 url:/item

0 投票
0 回答
820 浏览

angularjs - 使用 angular-http-auth 显示登录窗口时量角器 sendKeys 失败

我正在使用 angular-http-auth 和http://witoldsz.github.io/angular-http-auth/中的示例来显示我的登录表单。

这是 index.html 页面:

它在这样的指令中处理:

在我的 Protactor 测试中,我通过单击发出受保护的 http 请求的菜单项来触发登录事件。服务器以 401 响应,并且 angular-http-auth 广播event:auth-loginRequired上面处理的事件。

测试失败:

第 23 行是:usernameInput.sendKeys('admin');

如果我取消注释browser.sleep(500)..,这个测试将起作用。我相信这是因为指令中的 jqueryslideDown到那时已经完成。

有没有另一种方法可以在没有睡眠的情况下做到这一点?我可以改用角度动画还是以某种方式阻止测试直到event:auth-loginRequired处理完?

0 投票
2 回答
2077 浏览

angularjs - angular-http-auth 与 $http transformResponse

每当从服务器返回 401“未经授权”响应时,我都会使用angular-http-auth显示登录对话框。

由于我很酷,我还尝试在我的服务中反序列化响应对象。例如,如果一个服务请求 acar并且响应是{make: Honda, model: Civic},我尝试将它反序列化为一个Car使用transformResponse.

例如:

这不适用于angular-http-auth。如果响应是 401 Unauthorized,您将收到一个 javascript 错误。transformResponse这是因为即使响应是 401 ,Angular 也会尝试运行该代码。

事实证明,$http拦截器(这是angular-http-auth使用的)在transformResponse代码之后运行。transformResponse这是一个大问题,因为如果服务器响应是 401(不会有任何 401 data),那么这些代码都不会起作用

这对其他人来说是个问题吗?你是怎么解决的?transformResponse如果我使用$http拦截器,我不使用吗?

0 投票
0 回答
84 浏览

angularjs - 带有 angular-http-auth 的 Restangular 不起作用

我一直在使用Angular-HTTP-Auth和基本的 http 请求,但后来搬到了 Restangular,现在发现 401 不再被 HTTP-Auth 捕获。我假设这是因为没有使用 Angular http 方法或以某种方式被拦截。有没有办法让这些再次一起工作?我知道 Restangular 暴露了拦截器,但我不确定 2 需要如何操作。

0 投票
1 回答
18134 浏览

angularjs - angularjs基本身份验证标头

我正在尝试连接到 API 并发送身份验证标头。我正在使用此处描述的 Base64如何在 angularjs 中获得基本身份验证?

但我收到了这个错误

XMLHttpRequest 无法加载https://.../Category.json?callback= ?。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://....com ”。响应的 HTTP 状态代码为 400。

0 投票
1 回答
1224 浏览

angularjs - 没有拦截器的AngularJS错误代码401处理?

以下是我使用的代码,如果基本身份验证成功,我会收到身份验证成功警报,但是当凭据错误时,永远不会显示 else 警报“身份验证失败”。我不使用任何路线,也不需要使用拦截器。有没有办法在不使用拦截器的情况下获得 401 错误?

在控制器中:

0 投票
0 回答
739 浏览

angularjs - 使用 auth-http-interceptor 广播 login-confirmed

我正在使用 auth-http-interceptor 广播登录确认。我有一个 main.html 应该检查用户是否登录。

和指令

和登录控制器

1) 但是,我没有获得任何 console.logs。我的代码有什么问题吗?

2)我是对的,登录确认只被触发一次,而不是在我的登录会话中多次触发?

0 投票
0 回答
388 浏览

angularjs - AngularJS:使用身份验证标头获取受保护的 JSON

我有一个由服务器生成的 JSON 文件,要通过浏览器中的 URL 访问该 JSON,我需要登录并提供用户名和密码。

现在我正在尝试使用 Angular 获取 JSON,尽管找不到有效的解决方案。我已经拥有的:

这会在控制台中产生错误:

“未捕获的语法错误:意外的令牌”

和“资源解释为脚本,但使用 MIME 类型 text/json 传输:“myURLwithUserAndPass?callback=angular.callbacks._0”。

我尝试在配置中添加身份验证标头,如下所示:

……但这无济于事。我也试过像这样在 URL 中传递用户名和密码:

有关如何访问该 JSON 的任何帮助?

0 投票
1 回答
560 浏览

angularjs - 当身份验证失败时,Angular $http 拦截器会打开多个模式

我正在使用来在失败$http interceptor时显示登录模式。$auth这是我的简要设置:

上面的代码工作正常。但是我遇到的问题是当api抛出多个身份验证失败错误时,拦截器同时打开了多个模态。通常在一页中,我可能有 2-3 次各种服务联系后端 api,当身份验证失败时,所有这些 api 在无效令牌期间返回身份验证失败错误。该拦截器将其作为 3 个 take_invalid 错误拾取,并在彼此之上显示 3 个登录模式 1。我该如何防止这种情况?

无论身份验证失败发生多少次,如何确保拦截器仅显示 1 个登录模式?

我的服务看起来像这样:

在服务中,我试图$rootScope.loginProgress用作一个开关来确定登录模式是否打开。$rootScope.loginProgress但是,如果模式已经打开(何时为真),我不确定如何返回一个空的承诺。

0 投票
1 回答
2422 浏览

angularjs - 在 Angular 中设置和覆盖请求标头的正确方法

由于我们使用的身份验证方法,我需要为我的所有请求设置一个全局 http 标头。我们有一个身份服务器来使用 SSO 方法对用户进行身份验证。到目前为止一切顺利,我们使用拦截器来全局设置标头。但有时我们需要向不使用任何身份验证方法的第 3 方 API 发出请求。如何覆盖拦截器配置的身份验证标头?这是解决此问题的推荐方法吗?