Asp 网络 API。JWT 身份验证与用户名/密码身份验证

Avr*_*hom 2 asp.net-web-api asp.net-core-webapi websecurity

很抱歉提出这样的新手问题。

我对网络安全相当陌生。

有人可以向我解释一下,当我可以包含 { username | } 时,为什么我们需要 Web api (REST) 的 JWT 令牌身份验证?每个 API 请求的电子邮件}/密码?

Chr*_*att 6

大多数情况下,这是关注点分离的事情。JWT 是一种授权请求的方式,而用户名/密码是一种身份验证的方式。关键区别在于,理想情况下,身份验证只需执行一次,并且应该由负责此操作的专用端点来完成。对于每个其他请求,您只需确认从初始身份验证中收到的授权即可。

如果您要在每个请求中发送用户名和密码,那么每个端点都必须处理身份验证逻辑,这将是一场噩梦。使用 JWT,端点可以简单地验证它是否有效,然后继续处理它实际负责的事情。

JWT 只是一种授权方法。在传统的网站式应用程序中,这将由 cookie 处理。这样,用户只需登录一次,即可继续浏览站点的受保护区域,而无需再次登录。相当于您所建议的内容本质上就像强制用户每次单击链接时再次登录,只是为了查看下一页。