我正在使用 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
}
// [...]
这个“秘密”不应该被硬编码。它不应该在代码库或我的仓库中。那么处理这个问题的最佳/最安全的方法是什么?部署时符号链接的共享文件夹中的配置文件?数据库?