每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

应用程序登录显示正在认证(应用自定义用户身份验证的方法)(1)

该软件可以通过多种方法实现定制的用户身份验证。其中一些需要完全自定义编码,而另一些则更容易应用。2 种常见的解决方案,也称为服务,可以更快地集成:AWS Cognito 和 Auth0。另一方面,有两种方法需要完整的自定义代码,但有一些细微差别:JWT 和 OAuth2。但是这个列表远非最终的,它可以继续你的技能。

需要服务器端实现的应用程序通常需要客户端(移动应用程序或 Web 浏览器)向服务器验证自己的身份。例如,当某人在之前登录后使用 Chrome 访问 Facebook 时,他们会将特定信息传达给 Facebook 服务器以证明其身份。使用社交媒体登录只是用户身份验证的一种方式。但我还应该提到通过 Gmail 进行的身份验证,以及与初始应用程序相关的其他服务/集成,或者通常与操作系统识别相关。在这两种情况下,都需要设置自定义用户身份验证,因此我们将为开发人员定义主要方式。

构建自定义用户身份验证的方法

该软件可以通过多种方法实现定制的用户身份验证。其中一些需要完全自定义编码,而另一些则更容易应用。

从第二个(更简单的)选项开始,我可以命名 2 个常见的解决方案,也就是服务,它们可以使集成更快:AWS Cognito和Auth0。它们都让开发人员拥有了身份验证功能的基础,如果需要,可以添加额外的分层和扩展。那么,他们呢?

AWS Cognito

亚马逊云平台提供的众多服务之一是 AWS Cognito。通过使用此服务,您可以轻松地将其连接到其他 Amazon Web Services,包括 API 集成、AppSync 和 Lambdas。它可以保存您的用户通常保存在 Web 或移动应用程序中的任何用户信息,包括名字、姓氏、电子邮件、登录名、密码和其他详细信息。在应用程序端使用 AWS Cognito 进行用户身份验证可能比从头开始创建完整的用户身份验证服务更快。

此外,AWS Cognito 将处理所有事情,因此您无需担心后端。各种错误消息、服务连接和用户界面表单也将立即提供。如果您想使用高级安全功能,例如双重用户身份验证、电话号码验证或使用 Google 或 Facebook 登录,这是一个不错的选择。

实际上,AWS Cognito 设置过程看起来非常相似。

Auth0

Auth0 的客户端库称为 Auth0.js。建议将它与通用登录一起使用,只要可行,就可以使用它。从用户第一次看到您的应用程序(登录页面)开始,Auth0 有助于保护流程并显着简化。借助 Auth0 通用登录页面,您无需管理用户自行注册和用户身份验证。实际上,如果用户需要一个帐户来访问您的应用程序,则默认配置为他们提供了注册帐户的选项,方法是单击“注册”链接。通过单击该链接,用户可以通过输入电子邮件地址和密码快速开始注册和身份验证程序。

一般来说,Auth0 可以为应用程序添加用户身份验证的扩展变体,而不会为您做太多事情。

另一方面,一些开发人员更喜欢自己编写所有代码,因为有时项目要求如此苛刻,或者这仅取决于技术团队的选择。但是,接下来的 2 种方法需要完整的自定义代码,但有一些细微差别。

JWT Authentication

JSON Web Tokens,是一种可移植的识别方式。JSON Web Token 的使用越来越频繁。专门从事客户身份和访问管理 (CIAM) 的公司正在将 JWT 推广为解决所有问题的灵丹妙药。

JSON Web 令牌可以发送到服务和应用程序,并包含 JSON 格式的身份数据。任何应用程序或服务都可以验证 JSON Web 令牌。接收 JWT 的服务或应用程序不需要向生成它的身份提供者确认其有效性。服务或应用程序可以使用 JSON Web 令牌在确认后代表用户行事。

集成过程现在可能看起来更复杂,因为 JWT 只是一个生成的令牌,可以让您更好地保持会话。但是,有很多关于如何应用和使用它的指南。

OAuth 2.0

特别是,OAuth 2.0 只是声明用户已授权应用程序代表他们行事;它没有提及用户的身份或他们如何进行身份验证。OAuth 2.0 框架以访问令牌的形式使这种委托成为可能,应用程序可以利用该令牌代表用户采取行动。API(“资源服务器”)接收访问令牌并可以通过使用该知识来确定它是否处于活动状态。

OAuth 2.0 框架可用于通过分别处理身份验证和标识来创建身份验证协议。

集成过程包括许多细微差别和对令牌的深入工作。

概括

如您所见,应用自定义用户身份验证至少有 4 种不同的方法。但是这个列表远非最终的,它可以继续你的技能。您可以选择更易于使用的东西,也可以依赖于您使用的框架和您拥有的项目要求。

,