我正在使用JWT来验证SPA上的用户(NodeJS后端,Angular前端)。我在用户模型中有一个函数,用于在用户登录时生成JWT:
// ./models/user.js - with Waterline as ORM
var Waterline = require('Waterline');
var bcrypt = require('bcrypt');
var jwt = require('jsonwebtoken');
// [...]
generateJWT: function() {
// set expiration to 60 days
var today = new Date();
var exp = new Date(today);
exp.setDate(today.getDate() + 60);
return jwt.sign({
_id: this.id,
username: this.username,
exp: parseInt(exp.getTime() / 1000),
}, 'SECRET'); // TODO: Real secret
}
// [...]
这个'秘密'不应该是硬编码的。它不应该在代码库或我的仓库中。那么处理这个问题的最佳/最安全的方法是什么?部署时符号链接的共享文件夹中的配置文件?数据库?