检查 401,然后重定向 Angularjs,但仅在某些路由上

2024-04-23

我有一个很好的角度服务,可以通过查看服务器是否返回 401 错误消息来检查用户是否登录。如果是,用户将被重定向到登录页面。

这很有效,但问题是它对于我的所有页面来说都是完全全局的。我有一条特殊路线位于/explore(顺便说一句,使用 UI-router)我想忽略任何 401 并显示页面,而不重定向到登录页面。我该如何破例/explore?我的代码目前如下:

  .factory('authHttpResponseInterceptor',['$q','$location',function($q,$location) {

      return {
          response: function(response){
              if (response.status === 401) {
              }

              return response || $q.when(response);
          },
          responseError: function(rejection) {
              if (rejection.status === 401) {
                  $location.path('/welcome');
              }
              return $q.reject(rejection);
          }
      };
  }])

这应该可行,传入您希望用户重定向的特定路径:

var reservedPaths = ['/explore','/teachers','/reports'];

if (rejection.status === 401 && _.contains(reservedPaths,$location.path().trim()) {
        $location.path('/welcome');
}

或者你可以使用$state.includes()如果你想与ui-router's状态。如果上述方法不起作用,请提供一个小问题来演示问题。

关于 @Kanh TO 关于客户端能够查看未经授权的页面的评论,我们所做的是处理客户端的受限路由,但是我们的 Web API 端点会检查身份验证/授权请求,因此即使用户确实摆弄了这一点并管理要到达未经授权的路线,他们只会看到没有数据的视图,在我看来这没什么大不了的,因为数据是您希望未经授权的用户看不到的内容,而不是您的应用程序的视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 401,然后重定向 Angularjs,但仅在某些路由上 的相关文章

随机推荐

  • 库存管理系统的 SQL 与 NoSQL

    我正在开发一个基于 JAVA 的网络应用程序 主要目的是拥有在多个称为渠道的网站上销售的产品的库存 我们将担任所有这些渠道的管理者 我们需要的是 用于管理每个渠道的库存更新的队列 库存表 其中包含每个通道上分配的正确快照 将会话 ID 和其
  • 将字符串中的数字替换为字符串和附加到该字符串的数字的长度

    基本上我需要在数据框中取一列 其中包含字符和数字的组合 例如 XYZABC 123441 s sdx 和类似的类型 我需要删除所有标点符号 单字母单词 用单空格替换双空格 修剪字符串 并将数字替换为 NUMB 其中 表示数字的长度 所以这里
  • 循环遍历复选框并对每个选中或未选中的复选框进行计数

    我遇到了一点问题 这是一个简短的解释 我在标准表格上有 12 个复选框 我需要做的是循环遍历它们中的每一个并了解哪些已检查 哪些未检查 使用它 我可以构建一个字符串 然后将其输入到数据库字段中 这是一个例子 检查1 已检查 检查2 未检查
  • 如何在多个 Twitter Bootstrap 选项卡上只有一个表单?

    如何将多个 Twitter Bootstrap 选项卡合二为一 div class tabbable ul class nav nav tabs li class active a href 1 Tab1 a li li a href 2
  • 有人可以向我解释一下什么时候使用 MapMaker 或 WeakHashMaps 有用吗?

    我读过很多人非常喜欢MapMaker http guava libraries googlecode com svn trunk javadoc com google common collect MapMaker htmlGoogle G
  • 手势识别器和 TableView

    我有一个 UIView 覆盖了 UITableView 的所有内容 UIView 使用手势识别器来控制表格显示的内容 我仍然需要垂直 UITableView 滚动和行点击 我如何将这些从手势识别器传递到桌子上 如果您需要知道单元格的索引路径
  • 为什么使用 $PATH 以及它是什么

    我对编程有点陌生 不是真的 但我仍在学习 我们不是吗 虽然我了解 Java 和 Python 并且了解 C C JS C HTML CSS 等 并且我可以在终端中很好地导航 但我不熟悉终端中的 PATH 是什么 我使用 Linux 终端和
  • 键路径值类型“Int”无法转换为上下文类型“String”

    我试图将包含 KeyPath 和排序顺序类型的多个元组传递给应该进行排序的方法 我有这个方法 extension Array mutating func sort
  • 使用 Python 的内置 .csv 模块进行编写

    请注意 这是一个与已经回答的问题不同的问题如何使用 Python 的内置 csv writer 模块替换列 https stackoverflow com questions 1019200 how to replace a column
  • 部署 Qt Quick 演示应用程序 Minehunt 时出现全白屏幕

    为了测试部署过程 我尝试部署附带的演示应用程序 Minehunt 我能够让它运行 没有崩溃或错误 但屏幕是全白的 我相信这通常意味着我缺少插件 Dependency walker 报告没有问题 我什至尝试包含 Qt MingW 插件目录中的
  • Start-Job - 实时检索输出

    我们通过以下方式启动 Powershell 函数Start Job并希望实时检索调用者的输出 有没有一种好的方法可以在不打电话的情况下做到这一点Retrieve Job在循环中 尝试这样的事情 appJob Start Job foreac
  • 对等网络应用程序的网络发现

    我希望有两个类 一个服务器类和一个客户端类 服务器类应该接收每个新客户端的 IP 地址和端口号并将它们存储在列表中 它应该为每个客户端提供已连接客户端及其 IP 地址的列表 然后 客户端可以使用 TCP 连接相互通信 问题是客户端不知道服务
  • 查找集合中的所有对象 Java Mongodb

    下面的代码查找集合中的第一个文档 package database import com mongodb BasicDBObject import com mongodb BulkWriteOperation import com mong
  • 使用 Python 从原始帧创建 MPEG4 视频文件

    我有一个原始视频帧源 我可以在 Python 中访问它 我想用它创建一个 MPEG4 视频 并带有 MP3 背景音乐 Python 中有哪些类型的工具和库可用于此类任务 最好我想要一个 API 我可以为其提供输出文件名 然后将各个帧作为 2
  • Aureliajs 等待应用程序构造函数上的数据

    我正在 aureliajs 中开发一个应用程序 开发过程已经开始了好几个月 现在后端开发人员希望对其服务进行版本控制 因此 我有一个 Web 服务可以调用来获取每个服务器端 Web api 应用程序的版本 然后 对于进一步的请求 调用正确的
  • 更好的德尔福印地 2007

    使用 Delphi 2007 附带的默认 indy10 或将其升级到最新快照版本哪个更好 为什么 谢谢 始终保持最新版本 它包含错误修复 如果您报告 Delphi 提供的库存版本存在问题 您将得到的第一个建议是升级到最新版本 因为您的错误可
  • 如何在选择自定义 UITableViewCell 时获取触摸坐标?

    当我触摸 触摸 UITableViewCell 时 我的 ViewController 的 UITableViewDelegate 方法 void tableView UITableView tableView didSelectRowAt
  • 整数包装对象仅在值 127 内共享相同的实例? [复制]

    这个问题在这里已经有答案了 这里它们是同一个实例 Integer integer1 127 Integer integer2 127 System out println integer1 integer2 outputs true 但这里
  • 在 ASP.NET 中通过 AJAX 使用后台工作程序

    我需要执行一项后台任务 该任务有一个显示完成百分比的进度条和一个取消按钮 撇开任务细节不谈 现在 我只想让一个示例正常工作 因此我只有三个主要事件处理程序 DoWork ProgressChanged 和 RunWorkerComplete
  • 检查 401,然后重定向 Angularjs,但仅在某些路由上

    我有一个很好的角度服务 可以通过查看服务器是否返回 401 错误消息来检查用户是否登录 如果是 用户将被重定向到登录页面 这很有效 但问题是它对于我的所有页面来说都是完全全局的 我有一条特殊路线位于 explore 顺便说一句 使用 UI