𝗝𝗪𝗧 𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗶𝗻 𝗙𝗮𝘀𝘁𝗔𝗣𝗜

身份验证(Authentication)询问“你是谁?” 授权(Authorization)询问“你能做什么?”

如果你构建了一个没有安全机制的 AI 平台,任何人都可以访问私有数据。他们可以更改用户资料或查看学生进度。你必须保护你的资源。

JWT (JSON Web Token) 解决了这个问题。用户不再在每次请求时发送密码,而是发送一个安全的令牌(token)。

工作流程:

你应该使用这些工具:

永远不要以明文形式存储密码。如果黑客窃取了你的数据库,他们将获得一切。相反,你应该存储哈希值。

哈希会将 "password123" 转换为一串很长的随机字符。你无法将哈希还原为密码。你只需验证输入是否与哈希匹配。

如何构建:

  1. 注册 用户发送用户名和密码。你对密码进行哈希处理并将其存储在数据库中。

  2. 登录 用户发送凭据。你找到存储的哈希值。你使用库来验证密码。如果匹配,则创建一个令牌。

  3. JWT 生成 令牌包含用户数据和过期时间。你使用密钥(secret key)对令牌进行签名。如果用户尝试更改数据,签名将会失败。

登录响应如下所示: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }

现在,用户持有进入你系统的钥匙。

在下一部分中,我们将学习如何使用这些令牌来保护特定路由并管理用户角色。

步骤总结:

Source: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk

Optional learning community: https://t.me/GyaanSetuAi