gpt4 book ai didi

android - 在多层架构中处理身份验证

转载 作者:太空狗 更新时间:2023-10-29 15:59:38 24 4
gpt4 key购买 nike

我正在编写一个 API,它将被网络应用程序以及 native iPhone 和 Android 应用程序使用。

用户将通过网络应用程序或 native 应用程序创建帐户、登录、注销等。但是所有的业务逻辑都在 API 中。因此,网络应用程序和 native 应用程序大多是薄层,仅包含与 API 集成的 UI。

问题:

当您拥有网络应用程序或 native 应用程序的外层时,用于根据 API 对用户进行身份验证的一些通用方法/技术有哪些。

相关问题

Authenticating users in iPhone app

最佳答案

披露:我在 Auth0 工作。

代币!代币!代币!

在 Web API 中对用户进行身份验证的最普遍方法是使用基于 token 的身份验证。该过程可以简化为以下步骤:

  1. 客户端应用程序在请求中包含一个 token (Authorization header )。
  2. Web API 验证 token ,如果有效,则根据与 token 关联的信息处理请求。

这种类型的 token 通常称为不记名 token ,因为应用程序要访问受 API 保护的资源,唯一需要做的就是提供 token 。将 HTTPS 与此类身份验证结合使用至关重要,以确保 token 在从客户端传输到服务器时不会被攻击者轻易捕获。

token 可以进一步分类为:

  • 按值 token - 相关信息包含在 token 本身
  • by-reference token - 关联信息保存在服务器端存储中,然后使用 token 值作为键找到该信息

用于按值 token 的流行格式是 JWT 格式 ( Get Started with JSON Web Tokens ),因为它以 Web 友好的方式编码,并且还具有相当简洁的表示以减少网络开销。

在按值或按引用 token 之间进行选择需要考虑每种方法的优缺点,并查看您可能有的任何特定要求。如果您使用 JWT,请检查 jwt.io以供引用,了解在各种技术中支持此格式的库。

我的应用程序首先如何获得 token ?

设置您的 API 以使用 token 对用户进行身份验证可以看作是最简单的部分,尽管仍然需要考虑所有常见的安全预防措施。

基于 token 的身份验证系统的最大问题是建立一个系统,该系统可以向您的不同客户端应用程序颁发 token ,这些应用程序可能使用不同的技术或位于完全不同的平台中。

这个问题的答案,正如另一个答案中提到的,是依赖 OAuth 2.0OpenID Connect协议(protocol)并执行以下操作之一:

  • 实现符合上述协议(protocol)的身份提供者/授权服务器系统
    既耗时又复杂,但您遵循标准,因此不太可能搞砸,而且您还将获得互操作性

  • 将身份验证委托(delegate)给第三方身份验证提供商,例如 Auth0
    容易上手,取决于使用量(Auth0 上的免费计划 goes up to 7000 users )它会花钱而不是时间

关于android - 在多层架构中处理身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40327524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com