本章要實現後臺登陸限制,要求以下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
瀏覽器
座標: 廣東省深圳市
緩存