HTTP Auth From BasicAuth to WebAuthn
在 Web 开发中,身份认证是一个很常见的诉求,而平时设计中并没有好好研究整体的 Auth 体系,今天就从头开始研究一下 Auth 这个东西。
MDN 对 HTTP Auth 有所总结:
RFC 7235 定义了一个 HTTP 身份验证框架,服务器可以用来质询(challenge)客户端的请求,客户端则可以提供身份验证凭据。
质询与响应的工作流程如下:
- 服务器端向客户端返回
401
(Unauthorized,未被授权的)响应状态码,并在WWW-Authenticate
响应标头提供如何进行验证的信息,其中至少包含有一种质询方式。- 之后,想要使用服务器对自己身份进行验证的客户端,可以通过包含凭据的
Authorization
请求标头进行验证。- 通常,客户端会向用户显示密码提示,然后发送包含正确的
Authorization
标头的请求。
而大部分 HTTP 验证都遵循这一流程,只是加密算法、验证实现可能有所区别。