← AI 百科

用户身份验证

AI编程 · 安全 / 登录 / 编程基础
一句话:确认"这个人是不是他声称的那个人"的过程,通常通过账号密码、验证码或第三方登录实现,是几乎所有需要登录功能的应用的基础。

它是什么

身份验证(Authentication)解决的是"你是谁"的问题,和解决"你能做什么"的权限系统(Authorization)是不同的概念,但经常配合使用。常见方式包括账号密码登录、手机验证码、第三方登录(微信/Google账号登录)等。

适合干什么

  • 需要区分不同用户、保护用户数据的应用
  • 需要记录用户身份进行个性化服务的场景

不适合干什么

  • 完全公开、不需要区分用户身份的静态展示页面

普通人怎么用

现在有不少现成的身份验证服务(如各类BaaS平台自带的Auth功能)可以直接用,不需要从零手写密码加密、Token生成这些底层逻辑,优先选择成熟方案而不是自己造轮子。

进阶用户怎么用

密码必须加密存储(用scrypt/bcrypt这类专门的哈希算法,不能明文或简单加密存),登录凭证(见auth-token/jwt)要设置合理的过期时间;重要操作考虑加二次验证。

常见误区

  • 自己实现登录功能时把密码明文存到数据库,一旦数据库泄露所有用户密码直接暴露,必须用专门的哈希算法加密存储
  • 以为登录成功了整个会话期间就绝对安全,重要操作(改密码、大额支付)还是要考虑二次验证

和相似工具的区别

  • 和权限系统的区别:身份验证解决"你是谁",权限系统解决"你能做什么",登录成功只是第一步,之后还需要权限系统判断能访问哪些内容

入门步骤

  • 选择合适的身份验证方式(账号密码/第三方登录/验证码)
  • 如果自己实现,确保密码用专门算法加密存储
  • 设计好登录状态的维持方式(见auth-token)