身份验证从零到英雄 (▀̿Ĺ̯▀̿ ̿) | 第二部分
⛑基本身份验证
🍪基于 Cookie/Session 的身份验证。
🔑JWT
🌐OpenID 连接
简单来说,身份验证就是向应用程序询问“你是谁😕?”。身份验证是开发应用程序的第一步,因此理解它至关重要。在上一篇文章中,我们了解了什么是身份验证及其类型!在本文中,我们将深入探讨实现身份验证的各种方法。
我们将要讨论的内容
- ⛑基本身份验证
- 🍪基于 Cookie/Session 的身份验证。
- 🔑JWT
- 🌐OpenID 连接
⛑基本身份验证
基本身份验证方案内置于 HTTP 协议中。用户 ID 和密码经过 Base64 编码,并随每个后续请求一起发送到服务器。客户端发送带有 Authorization 标头的 HTTP 请求,该标头包含单词 Basic word,后跟一个空格,以及一个 base64 编码的字符串 username:password。
例如,要进行授权,xyz:pass
客户端将发送
Authorization: Basic eHl6OnBhc3M=
因为它只能与 HTTPS/SSL 一起使用,否则任何人都可以读取凭据。
🍪基于 Cookie/Session 的身份验证。
在此方法中,用户安全验证后,会生成一个会话 ID 并存储在服务器内存中。然后,该会话 ID 会存储在客户端浏览器的 Cookie 中。在用户保持登录状态期间,该 Cookie 会随后续的每个请求一起发送。
每次请求时,服务器都会查看会话 Cookie 以读取会话 ID。如果与内存中存储的数据匹配,则会向浏览器发送响应,告知一切正常,可以继续操作。
🔑JWT
JSON Web Token (JWT)是一项开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间安全地以 JSON 对象的形式传输信息。由于这些信息经过数字签名,因此可以验证和信任。JWT 可以使用密钥(采用 HMAC 算法)或公钥/私钥对(使用 RSA 或 ECDSA)进行签名。
JSON 网络令牌的工作方式与支票上的银行账号类似,并在其上签名以批准通过支票转账。
🌐OpenID 连接
OpenID Connect 是 OAuth 2.0 协议之上的一个简单的身份层。它允许客户端基于授权服务器执行的身份验证来验证最终用户的身份,并以可互操作且类似 REST 的方式获取最终用户的基本个人资料信息。
鏂囩珷鏉ユ簮锛�https://dev.to/kushagra_mehta/from-zero-to-hero-l-in-authentication-part-2-a0h