JS之cookie验证

转载自:http://www.runoob.com/js/js-cookies.html

使用JS的基本功能实现以下功能。

我们将创建 cookie 来存储访问者名称。
首先,访问者访问 web 页面, 他将被要求填写自己的名字。该名字会存储在 cookie 中。
访问者下一次访问页面时,他会看到一个欢迎的消息。
在这个实例中我们会创建 3 个 JavaScript 函数:
   设置 cookie 值的函数
   获取 cookie 值的函数
   检测 cookie 值的函数

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>cookie验证</title>
</head>
<head>
<script>
function setCookie(cname,cvalue,exdays){
	var d = new Date();
	d.setTime(d.getTime()+(exdays*24*60*60*1000));
	var expires = "expires="+d.toGMTString();
	document.cookie = cname+"="+cvalue+"; "+expires;
}
function getCookie(cname){
	var name = cname + "=";
	var ca = document.cookie.split(';');
	for(var i=0; i<ca.length; i++) {
		var c = ca[i].trim();
		if (c.indexOf(name)==0) return c.substring(name.length,c.length);
	}
	return "";
}
function checkCookie(){
	var user=getCookie("username");
	if (user!=""){
		alert("Welcome again " + user);
	}
	else {
		user = prompt("Please enter your name:","");
  		if (user!="" && user!=null){
    		setCookie("username",user,30);
    	}
	}
}
</script>
</head>
<pre>
	我们将创建 cookie 来存储访问者名称。
	首先,访问者访问 web 页面, 他将被要求填写自己的名字。该名字会存储在 cookie 中。
	访问者下一次访问页面时,他会看到一个欢迎的消息。
	在这个实例中我们会创建 3 个 JavaScript 函数:
	    设置 cookie 值的函数
	    获取 cookie 值的函数
	    检测 cookie 值的函数

	具体网页:http://www.runoob.com/js/js-cookies.html
</pre>
	
<body οnlοad="checkCookie()"></body>
	
</html>


在NestJS中进行Cookie验证可以通过使用中间件来实现。下面是一个简单的示例: 首先,创建一个自定义的Cookie验证中间件: ```typescript // cookie.middleware.ts import { Injectable, NestMiddleware } from '@nestjs/common'; import { Request, Response, NextFunction } from 'express'; @Injectable() export class CookieMiddleware implements NestMiddleware { use(req: Request, res: Response, next: NextFunction) { // 在此处进行Cookie验证逻辑 const authToken = req.cookies.authToken; if (authToken === 'your-secret-token') { next(); // 验证通过,继续处理请求 } else { res.status(401).send('Unauthorized'); // 验证失败,返回未授权状态码 } } } ``` 然后,在模块中将中间件添加到应用程序: ```typescript // app.module.ts import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common'; import { CookieMiddleware } from './cookie.middleware'; import { AppController } from './app.controller'; @Module({ imports: [], controllers: [AppController], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(CookieMiddleware).forRoutes('*'); // 可以指定特定的路由或控制器来应用中间件,也可以使用通配符 * 来应用到所有路由 } } ``` 这样,在每次请求到达时,中间件会检查请求中的authToken Cookie是否匹配预期值。如果匹配,则继续处理请求;如果不匹配,则返回未授权状态码。 请注意,此示例中使用了express的Request和Response对象,因为NestJS底层使用了express框架。如果您使用的是Fastify等其他框架,代码可能会有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值