【发布时间】:2019-01-04 17:41:39
【问题描述】:
这可能已经被问过了,但也许 2018 年有更好的方法。我正在尝试保护我的 api 服务器,并且只授予对我创建的客户端应用程序的访问权限。移动/Web 客户端应用程序将 vue.js 用于客户端应用程序,并将 express.js 用于 api 服务器。
在客户端应用程序上创建一个静态令牌代码是明智之举。它将与每个 api 调用一起发送。然后在 api 服务器上有我对令牌的秘密。 api调用回传前验证token。
有没有更好的方法?它似乎工作正常,但也许有一些我不知道的东西。也许不时更换静态令牌和秘密?网络肯定是https。我通过每个 api 调用 req.body.clientAppToken
发送令牌你怎么看?谢谢大家!
更新这是下面的 express api 中间件。
App 在每次请求时都会向 api 服务器发送一个手动创建的令牌。所有应用程序的令牌都是相同的。我使用存储在服务器上的秘密验证令牌。如果通过了,他们就会得到数据,如果没有,他们就不会。
const jwt = require('jsonwebtoken')
const config = require('../config/config')
module.exports = {
authClientAppToken (req, res, next) {
// start see if client app jwt is correct
/* eslint-disable */
console.log('req.body.clientAppToken', req.body.clientAppToken)
try {
let decoded = jwt.verify(req.body.clientAppToken, config.jwtAppSecret)
next()
} catch (err) {
res.status(400).send({
error: 'We got problems'
})
}
/* eslint-enable */
// end see if client app jwt is correct
}
}
【问题讨论】:
标签: api express single-page-application