Node 后台之安全性

1、https

var https = require('https');
var fs = require('fs');

var options = {
    key: fs.readFileSync('./keys/214348170300525.key'),
    cert: fs.readFileSync('./keys/214348170300525.pem')
};

https.createServer(options,function(request, response){
    response.writeHead(200, { 'Content-Type': 'text-plain' });
    response.end('Hello World,lalala\n');
}).listen(443);

2、token的使用以及验证过程

app.all('/*', function(req, res, next){    //每个请求都会经过这里  需要写在路由定义之上
  if(req.query.name){
    next();
  }else{
    res.send({
      result:'name necessary'
    })
  }
});
var express = require('express');
var router = express.Router();
var token = require('./token');
/* GET home page. */
router.get('/login', function(req, res, next) {
  res.send({
    code:token.createToken({     //Payload
      "iss": "ninghao.net",
      "exp": "1438955445",
      "name": "wanghao",
      "admin": true
    },60)
  });
});
router.get('/yz', function(req, res, next) {
  res.send({
    result:token.checkToken('eyJkYXRhIjp7ImlzcyI6Im5pbmdoYW8ubmV0IiwiZXhwIjoiMTQzODk1NTQ0NSIsIm5hbWUiOiJ3YW5naGFvIiwiYWRtaW4iOnRydWV9LCJjcmVhdGVkIjoxNTExOTI2NTY3LCJleHAiOjYwfQ==.xHjXwe96w6DJD3kxUSD03+uckJRjM0nYE9C6ryBxHTc=')
  });
});
module.exports = router;

token的创建过程在之前有讲过,其中:

Payload 里面是 Token 的具体内容,这些内容里面有一些是标准字段,你也可以添加其它需要的内容。下面是标准字段:

  • iss:Issuer,发行者
  • sub:Subject,主题
  • aud:Audience,观众
  • exp:Expiration time,过期时间
  • nbf:Not before
  • iat:Issued at,发行时间
  • jti:JWT ID
posted @ 2017-11-29 11:44  可恶の小郑  阅读(646)  评论(0)    收藏  举报