//注意:需要引入 express body-parser
const express = require('express') //引入第三方express框架
const app = express() //创建web服务
const path = require('path') //路径管理模块
//解决跨域
const cors = require('cors')
app.use(cors())
// 给 服务器添加 gzip压缩
const compression = require('compression')
app.use(compression())
// 解决history单页程序 空白问题
var history = require('connect-history-api-fallback')
app.use(history())
app.use(express.static(path.join(__dirname, 'public'))) //静态资源管理
const bodyParser = require('body-parser') //处理post接收值的第三模块
app.use(bodyParser.urlencoded({ extended: false })) //接收post传值中间件
app.use(bodyParser.json()) //接收json传真中间件
const jwt = require('jsonwebtoken') //生成token的
//配置使用cookie的
const cookie = require('cookie-parser')
app.use(cookie())
// 登录接口
app.post('/login', (req, res) => {
console.log(req.body)
let { username, password } = req.body
// 进入数据库验证 此时先不验证
let content = { name: username } // 加密信息
let secretOrPrivateKey = 'jwt' // 这是加密的key(密钥)
// token = 加密信息 + 密钥 + 过期时间
let token = jwt.sign(content, secretOrPrivateKey, {
expiresIn: 60 * 60 * 1 // 1小时过期
})
res.json({ status: 1, mess: 'ok', token: token, user_name: req.body.name })
})
// 判断token信息
app.post('/home', (req, res) => {
let token = req.get('Authorization') // 从Authorization中获取token
let secretOrPrivateKey = 'jwt' // 这是加密的key(密钥)
// 对比token
jwt.verify(token, secretOrPrivateKey, (err, con) => {
if (err) {
res.json({ status: 400, message: 'token存在问题' })
} else {
res.json({ status: '200', message: '登录成功' })
}
})
})
app.listen(80, () => {
//监听端口
console.log('http://127.0.0.1')
})
发表评论