欢迎旅行者到此一游
关于Web程序与Nodejs后端通过JWT进行验证。
ShiinaAiiko.NO.00004·2019/09/03/ · Articles

内容主要是指Vue开发的Web程序与Nodejs后端通过JWT进行验证的简单使用方法。


后端 生成Token

安装依赖包

npm install jsonwebtoken


生成Token

var jwt = require('jsonwebtoken');
var token = jwt.sign({
     // 第一个参数为payload信息、可以放置一些非私密的信息、如用户名UID性别等等?
    data: {
        uid: 1,
        username: 'admin',
        gender: 1
    }
    // 第二个参数为加密的私钥、私钥要放在服务器端不得公开、防止被盗用。
}, 'secret', {
    // 加密算法( 默认值: HS256)
    // algorithm: 


    // expiresIn: 以秒表示或描述时间跨度zeit / ms的字符串。 如60, "2 days",
    // "10h",
    // "7d",
    // Expiration time, 过期时间
    expiresIn: 60 * 60,


    // notBefore: 以秒表示或描述时间跨度zeit / ms的字符串。 如: 60, "2days",
    // "10h",
    // "7d"


    // audience: Audience, 观众


    // issuer: Issuer, 发行者
    issuer: 'admin'


    // jwtid: JWT ID


    // subject: Subject, 主题


    // noTimestamp


    // header
});
        // 之后传给用户即可


前端 获取与发送信息

存储Token

Token可以选择存储到Cookies或者本地存储里。


发送Token

在发送请求的时候、可以将token信息写入headers里一起发送、也可以作为参数发送


后端 验证Token

验证Token

// iat签发时间,exp过期时间
// var decoded = jwt.verify(token, 'secret1');
// console.log(Boolean(decoded)) // bar
// 封装的验证函数便于使用
function verifyJwt(token) {
    return new Promise((res, rej) => {
        try {
            // 第一个参数是token,第二个参数是生成token前使用的密钥,第三个参数则是可以对生成信息进行验证
            var decoded = jwt.verify(token, 'secret',{
                issuer: 'admin'
            });
            // console.log(decoded);
            res(decoded)
        } catch (err) {
            // err
            // console.log(err);
            res(false)
        }
    })
}


verifyJwt(token).then(data => {
    // 此时data为true说明Token有效、反之无效
    console.log(data);
});
重庆市
阴转中雨
Windows
like
dislike
comment
906
Author:ShiinaAiiko.NO.00004
Time:2019.09.03 05:13
comments0
ShiinaAiiko.NO.00004欢迎旅行者到此一游
Recommended
No Content Published Yet
ShiinaAiiko.NO.00004欢迎旅行者到此一游