当前位置: 首页 > 知识库问答 >
问题:

Alamofire 4的头授权最佳实践,具有全局401代码捕获

陆翰学
2023-03-14

我正在我的应用程序中实现授权,其中我使用Alamofire 4.0.我有一个令牌可以添加到我发出的每个HTTP请求的头中,如果响应代码是401,我必须签入每个请求,在这种情况下,我必须注销用户。

最佳实践是什么?有没有一种简单的方法将这种行为添加到每个请求中?

我在这里查看了会话管理器和请求适配器,创建单例请求管理器并使用它来创建请求非常容易,但是我找不到为401响应代码添加集中验证的好方法。这必须是一个一般的验证,如果它失败,我注销用户,如果它通过,我将让处理请求的人谁提出的请求。

我希望的目标是在我的代码中只有一个点检查401错误代码。

我四处寻找,没有找到一个令人满意的答案,关于如何做这件事,有什么建议吗?

共有1个答案

申屠恺
2023-03-14

中的简单 方法。为webservice创建一个单独的类,并在每个请求中进行验证。

  let alamofireManager: SessionManager = {
    let configuration = URLSessionConfiguration.default
    configuration.httpMaximumConnectionsPerHost = AppConstants.maxSimultaneousDownloads
    configuration.requestCachePolicy = .reloadIgnoringLocalCacheData
    return SessionManager(configuration: configuration)
  }()


 self.alamofireManager.request(UrlString)
        .responseJSON { response in

          print("response: \(response)")

          guard response.result.isSuccess else {
          //Request fails here. Trigger here to log out the user
            return
          }

          if let JSON = response.result.value {
            print("Successful")
            //or check response code here

          }
      }
 类似资料:
  • 下面,我们将会回顾常见的安全原则,并介绍在使用 Yii 开发应用程序时,如何避免潜在安全威胁。 大多数这些原则并非您独有,而是适用于网站或软件开发, 因此,您还可以找到有关这些背后的一般概念的进一步阅读的链接。 基本准则 无论是开发何种应用程序,我们都有两条基本的安全准则: 过滤输入 转义输出 过滤输入 过滤输入的意思是,用户输入不应该认为是安全的,你需要总是验证你获得的输入值是在允许范围内。 比

  • Overview The term “production” refers to the stage in the software lifecycle when an application or API is generally available to its end-users or consumers. In contrast, in the “development” stage, y

  • 我需要存储一些应该在我的应用程序上随处可见的数据。到目前为止,我知道三种方法来做到这一点: < li >创建一个特殊文件使变量成为全局变量(Dart中的全局变量) < li >使用共享首选项(这里我只想访问数据,不一定要永久存储) 和InheritedWidget 我想知道哪个解决方案(或另一个我不知道的解决方案)在性能和易于实现方面是最好的。

  • 本篇文档的目的在于如何让系统管理员或开发者用尽可能少的时间部署一个安全的 web 站点或应用,即 SSL 和 TLS 部署最佳实践。

  • 如何配置和利用授权功能,然后使其全局可用于所有endpoint? 我的应用程序使用 HTTP 与承载方法进行保护。 Swagger UI身份验证的当前配置

  • 当使用将链接工件部署到JCenter时,我得到了一个错误