ios - 集中管理身份验证的方式

标签 ios swift alamofire

我在我使用 Alamofire 的应用程序中实现授权。我有一个授权 token 添加到我发出的每个 HTTP 请求的 header 中,然后检查他们的响应以查看服务器是否返回了 401 状态代码?如果是,请注销用户。

最佳做法是什么?有没有一种简单的方法可以将此行为添加到每个请求?

我期望的目标是在我检查 401 错误代码 的代码中拥有单一事实来源。

环顾四周我没有找到满意的答案关于如何做到这一点有什么建议吗?

最佳答案

Alamofire 提供了两个protocol,分别是RequestAdapterRequestRetrier

RequestAdapter 会在每次即将 发出请求时得到通知。这是注入(inject)您的 token 的理想场所。

RequestRetrier 每次请求因任何原因而失败时都会收到通知。您可以检查失败原因并检测 401 未授权情况,并向系统发送全局通知(并可能在 AppDelegate 中进行管理)

您必须将它们分配给当前的 Session 管理请求。

您还可以阅读 how to implement simple OAuth 的 Alamofire 文档.

关于ios - 集中管理身份验证的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57219965/

相关文章:

ios - 快速打开文件

ios - 如何在我的应用程序中禁用 iOS 7 界面更改

ios - 我应该选择可选项还是隐式解包的可选项

swift - 使用不存在的 rawValue 初始化的枚举不会失败并返回 nil

ios - 在框架模块内包含非模块化 header - Xcode 9.2

iOS/Windows 商店应用程序 : can I know whether my other app installed on this device/user account?

swift - 在 Swift 中找到最高有效位

ios - 如何在 Swift 中上传多张图片

json - Swift 3、Alamofire 4、JSON 字典 : Only displaying last JSON entry

ios - Alamofire - 如何获取表中的记录数