客户端向服务端发送请求,服务端如何知道该请求是哪个用户发起的呢?
服务端不知道用户身份
Token 的由来
为了标示请求的所属用户,客户端发送请求时必须带上用户的账号信息,像这样 /api/my_user_info?username=badboy123&password=goodgirl321。但这么一来,每个请求都得带上账号密码,这不安全,密码容易被泄露。
每次请求都带上账号信息
于是诞生了以 token 为基础的认证方案。客户端向服务端发送账号密码请求登录,服务端收到账号密码,校验后生成一个加密的 token 返回给客户端,后续客户端的所有请求都带上这个 token,服务端通过解密就能拿到客户端的登录账号信息了。