add gen token
This commit is contained in:
parent
945c7793fc
commit
d8974aef8b
39
scripts/generate_token.js
Normal file
39
scripts/generate_token.js
Normal file
@ -0,0 +1,39 @@
|
||||
const jwt = require("jsonwebtoken");
|
||||
const config = require("../src/config/haraka");
|
||||
const User = require("../src/db/models/User");
|
||||
const { Model } = require("objection");
|
||||
const Knex = require("knex");
|
||||
const knexConfig = require("../src/config/database");
|
||||
const knex = Knex(knexConfig.development);
|
||||
Model.knex(knex);
|
||||
|
||||
const email = process.argv[2];
|
||||
const expire = process.argv[3];
|
||||
|
||||
if (!email || !expire) {
|
||||
console.error("Usage: node generate_token.js <email> [expire]h,d,m,y");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const user = await User.query().where("email", email).first();
|
||||
if (!user) {
|
||||
console.error("User not found");
|
||||
process.exit(1);
|
||||
}
|
||||
const generateToken = () => {
|
||||
return jwt.sign(
|
||||
{ id: user.id, email: user.email, is_admin: user.is_admin },
|
||||
config.auth.jwtSecret,
|
||||
{ expiresIn: expire }
|
||||
);
|
||||
};
|
||||
|
||||
token = generateToken();
|
||||
await User.query().where("id", user.id).update({ api_key: token });
|
||||
console.log("Token generated and updated for user", user.email);
|
||||
console.log("Token:", token);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
main();
|
||||
Loading…
x
Reference in New Issue
Block a user