Token

Token

  在计算机身份认证中是令牌的意思,Token是服务端生成的一串字符串,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需要带上这个Token前来请求数据即可,不用再带上用户名和密码。

  使用基于Token的身份验证方法,在服务端不需要存储用户的登录记录,大概流程为:

1> 客户端使用用户名跟密码请求登录

2> 服务端收到请求,去验证用户名与密码

3> 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

4> 客户端收到 Token以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage

5> 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

6> 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据。

  Token的主要作用就是用来做身份验证的。

  使用Token的目的是为了减轻服务器的压力,减少频繁的查询数据库。持久登录,但是也是有时间限制的。

  Token主要分为:header(头部)payload(负载)secret(秘钥)

          headertoken的类型。(一般格式不写)

          payload:属性:iss(发行者)exp(过期时间)username“”....

          secret:秘钥,加盐。

  secret会将headerpayload随机拼接在一起,生成一个字符串,这个字符串是加密的。

顺序:

 

1 //第一步  token
2 const JWT = require("jsonwebtoken");
3 //第二步  token
4 let token =  JWT.sign(payload,secret,{expiresIn:"1h"})
5 res.cookie("token",token);
6 res.cookie("user",username);

 

posted @ 2019-01-17 14:28  Malb  阅读(343)  评论(1编辑  收藏  举报