本章要实现后台登陆限制,要求以下html
因为没管后台,所以只作了个简易的nodejs
尝试实现,核心思想是利用Cookie缓存,具体步骤以下。node
步骤:nginx
下面展现后台代码,客户端代码省略...shell
/** * server */ var express = require('express'); var bodyParser = require('./node_modules/body-parser'); var cookieParser = require('cookie-parser'); var session = require('express-session'); var path = require('path'); const { url } = require('inspector'); var app = express(); // 地址解析中间件 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); // 引入静态文件 app.use(express.static(path.join(__dirname, 'public'))); // 开放跨域 app.all("*", function (req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header('Access-Control-Allow-Headers', '*'); res.header("Access-Control-Allow-Methods", "*"); res.header("Content-Type", "application/json;charset=utf-8"); next(); // 执行下一个路由 }); // 配置cookie解析中间件 app.use(cookieParser('sessiontest')); // 配置默认链接session参数 app.use(session({ secret: 'sessiontest', // 如下是选填参数,可是不填会提示警告 start resave: false, saveUninitialized: false, // 设置connect.sid name: 'caoleiying', // 设置生命周期 cookie: { maxAge: 60000000 }, })); // 拦截所有请求 app.use(function (req, res, next) { if (!req.session.user && req.url != "/login") { // 若是不存在user return res.redirect("./login.html"); } next(); }); // 路由 require('./routes/login.js')(app); app.listen(8888, function () { console.log('端口监听在', 8888); });
/** * login.js */ module.exports = function (app) { // 登陆验证 app.get('/login', (req, res, next) => { var user = { name: 'caoleiying', age: '22', address: 'ad' }; req.session.user = user; res.send("设置成功"); }); // 权限验证 app.get('/user', function (req, res, next) { var result = (req.session.user) ? "200" : "404"; res.send(result); }); };
以前没接触过这方面知识,我傻了同样想用nginx
实现此功能,虽然也能够说实现了,但bug是免不了的,在此贴出代码供各位一观:express
server{ listen xxxx; server_name _*; root /root/www/xxxx; index index.html; # 拦截全部的请求 location ~ .* { # 校验cookie if ( $http_cookie !~ "JSESSIONID=admin123" ) { # 未经过验证,则转发到登陆页面 rewrite ^ /login.html break; } } }
一会儿两个月差很少过去了,有点想念在学校的日子,那里有大大的电脑、有宽宽的跑道、还有美美的仙女!json
不知什么时候能回去,也不知怎么回去,很难回去了跨域
时间: 2020/08/28 10:09
浏览器
坐标: 广东省深圳市
缓存