广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >node.js实现token身份验证的示例代码
  • 549
分享到

node.js实现token身份验证的示例代码

2024-04-02 19:04:59 549人浏览 安东尼
摘要

安装依赖 express-Jwt npm i express-jwt 将token校验相关数据导入配置文件 // setting.js module.exports = {    

安装依赖 express-Jwt

npm i express-jwt

将token校验相关数据导入配置文件

// setting.js
module.exports = {
    token: {
        // token密钥
        signKey: 'blog_globM_token_key_$$$$',
        // 过期时间
        signTime: 3600 * 24 * 3,
        // 请求头参数
        header: 'authorization',
        // 不用校验的路由
        unRoute: [
            { url: '/login', methods: ['POST']},
            { url: '/reGISter', methods: ['POST']}
        ]
    }
}

token配置文件(加密/解密)

// verify.js
const jwt = require('JSONWEBtoken')
const setting = require('../setting')

const verify = {
    // 设置token
    setToken(email,_id){
        return new Promise(resolve => {
            let token = jwt.sign(
                // 存储数据,自定义
                { email,_id },
                // 密钥
                setting.token.signKey,
                // 过期时间
                { expiresIn: setting.token.signTime}
            )
            resolve(token)
        })
    },
    getToken(token){
        return new Promise((resolve, reject) => {
            // 判断token是否存在,这里是根据空格分割
            if(!token.split(' ').length){
                reject({error: 'The token value is empty'})
            }else{
                // 解密token并返回数据
                let data = jwt.verify(token.split(' ')[1],setting.token.signKey)
                resolve(data)
            }
        })
    }
}

module.exports = verify

主文件导入(app.js)

const expressJwt = require('express-jwt')
// 导入配置文件
const setting = require('./setting')
// 导入token校验文件
const verify = require('./public/verify')

// 解析token获取用户信息
app.use((req, res, next) => {
    // 获取请求头中的参数
    let token = req.headers[setting.token.header]
    if(token === undefined){
        return next()
    }else{
        // token校验并将校验结果保存至请求头中
        verify.getToken(token).then(data => {
            req.data = data
            return next()
        }).catch(_ =>{
            return next()
        })
    }
})
//验证token是否过期并规定哪些路由不用验证
app.use(expressJwt({
    secret: setting.token.signKey
}).unless({
    //除了这个地址,其他的URL都需要验证
    path: setting.token.unRoute 
}))
//当token失效返回提示信息
app.use((err, req, res, next) => {
    if (err.status === 401) {
        return res.status(err.status).json({
            status: err.status,
            msg: 'The token is invalid',
            error: err.name + ':' + err.message
        })
    }
})

接口中使用

const verify = require('../public/verify')
const setting = require('../setting')

// 生成token
verify.setToken(response.email,userData._id).then(token => {
    return res.json({
        status:0,
        msg:'success',
        token,
        signTime: setting.token.signTime
    })
})
// token 数据存储在req.data中
response.author = req.data._id

接口调用
headers 中传参,key: Authorization,value: 'Bearer ’ + token
Authorization : 'Bearer ’ + token

// axiOS
config.headers['Authorization'] = 'Bearer ' + token

到此这篇关于node.js实现token身份验证的示例代码的文章就介绍到这了,更多相关node.js token身份验证内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: node.js实现token身份验证的示例代码

本文链接: https://www.lsjlt.com/news/138489.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • node.js实现token身份验证的示例代码
    安装依赖 express-jwt npm i express-jwt 将token校验相关数据导入配置文件 // setting.js module.exports = {     ...
    99+
    2022-11-13
  • node.js实现身份认证的示例代码
    请问昨天结束的早是对堆积在了今天吗,今天还来加个班更博,看在这个毅力的份上能否给亿点点推荐。 有个好消息有个坏消息,先说坏消息吧,就是在这么学下去我急需急支糖浆,来回顾回顾前面的知识...
    99+
    2022-11-13
  • C#实现身份证验证功能的示例代码
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { ...
    99+
    2022-12-20
    C#身份证验证 C# 验证 C#身份证
  • Express实现Session身份认证的示例代码
    目录CookieHTTPCookieSessionSession VS CookieExpress 实现 Session 身份认证获取配置登录主页退出登录代码总汇Cookie HTT...
    99+
    2023-01-31
    Express Session身份认证 Express 身份认证
  • oracle 身份证校验函数的实例代码
    1、正则表达式写法: CREATE OR REPLACE FUNCTION Func_checkidcard (p_idcard IN VARCHAR2) RETURN INT IS v_regst...
    99+
    2022-10-18
  • node如何实现基于token的身份验证
    小编给大家分享一下node如何实现基于token的身份验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近研究了下基于toke...
    99+
    2022-10-19
  • Asp.net Core中实现自定义身份认证的示例代码
    Asp.Net Core中虽然集成了许多常用的身份认证,但很多时候,我们还是需要实现自己的身份认证接口,本文这里就简单的介绍下如何实现自定义身份认证接口。 首先写一个简单的接口...
    99+
    2022-06-07
    自定义 ASP.NET net 示例 core ASP
  • Java如何实现身份证号码验证
    小编给大家分享一下Java如何实现身份证号码验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:package xxx;import ...
    99+
    2023-05-31
    java
  • SpringBoot整合token实现登录认证的示例代码
    1.pom.xml <dependencies> <dependency> <groupId>org.springframework.b...
    99+
    2022-11-13
  • Flask中基于Token的身份认证的实现
    Flask提供了多种身份认证方式,其中基于Token的身份认证是其中一种常用方式。基于Token的身份认证通常是在用户登录之后,为用户生成一个Token,然后在每次请求时用户将该To...
    99+
    2023-02-20
    Flask Token身份认证 flask token认证
  • Java实现滑动验证码的示例代码
    目录1.效果演示2.后端代码控制层工具类3.前端页面功能:java实现滑动验证码 项目是采用springboot,maven 开发工具:采用idea 1.效果演示 2.后端代码...
    99+
    2022-11-13
  • Java实现短信验证码的示例代码
    目录项目需求需求来由代码实现发送验证码方法注册方法忘记密码前端代码编码中遇到的问题如何改进短信验证码相信大家都不陌生吗,但是短信验证码怎么生成的你真的了解吗,本文揭示本人项目中对短信...
    99+
    2022-11-13
  • vue获取token实现token登录的示例代码
    使用token做登录验证的思路大致如下: 1、在第一次登录的时候前端调用后端的接口,把用户名和密码传给后端。 2、后端收到请求,验证用户名和密码,验证成功后,返回给前端一个token...
    99+
    2022-11-12
  • SpringBoot整合Sa-Token实现登录认证的示例代码
    目录依赖登录退出登录前后端分离今天分享的是 Spring Boot 整合 Sa-Token 实现登录认证。 依赖 首先,我们需要添加依赖: 关...
    99+
    2022-11-13
  • SpringBoot实现token登录的示例代码
    为什么引入token机制 在进行登录验证时,我们需要session或cookie会话进行验证,客户端包括浏览器、app、微信小程序、公众号,只有浏览器有session和cookie机...
    99+
    2022-11-13
  • Flask中基于Token的身份认证如何实现
    今天小编给大家分享一下Flask中基于Token的身份认证如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Flask提...
    99+
    2023-07-05
  • Redis实现短信验证码登录的示例代码
    目录效果图pom.xmlapplicatoin.ymlRedis配置类controllerserviceImplmapper效果图 发送验证码 输入手机号、密码以及验证码完成登录操作 pom.xml 核心依赖 <...
    99+
    2022-06-13
    Redis短信验证码登录 Redis验证码登录 Redis短信验证码
  • Django中的JWT身份验证的实现
    1.认证与授权 1.验证:身份验证是验证个人或设备标识的过程。身份验证过程之一是登录过程。注册网站后,您的信息(ID,密码,名称,电子邮件等)将存储在其数据库中。之后,您无需创建帐...
    99+
    2022-11-12
  • Python实现双因素验证2FA的示例代码
    目录介绍1.安装2.配对3.验证4.那是不是手机上还有开发个 app知识点补充介绍 传统的用户名密码方式,容易泄漏,并不安全。 你说,加上短信验证码不就安全了,其实短信验证码也是不安...
    99+
    2022-11-11
  • vue3 + async-validator实现表单验证的示例代码
    目录vue3 表单验证前言搭建vue3的项目vue3的表单验证1.表单代码2.添加验证2-1. 初始化2-2. 多个表单的验证2-3. Promise方式验证2-4. 正则验证2-5...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作