fastcheck/server/create-auth-token.cjs
2026-04-08 13:58:46 -04:00

68 lines
1.4 KiB
JavaScript

const mongoose = require('mongoose');
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
const userSchema = new mongoose.Schema({
email: {
type: String,
required: true,
unique: true,
lowercase: true,
trim: true
},
password: {
type: String,
required: true,
minlength: 6
},
role: {
type: String,
enum: ['user', 'admin', 'superuser'],
default: 'user'
},
tenantId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Tenant'
}
}, {
timestamps: true
});
const User = mongoose.model('User', userSchema);
async function createAuthToken() {
try {
await mongoose.connect('mongodb://localhost:27017/duxiter');
console.log('Connected to MongoDB');
// Find a superuser
const superuser = await User.findOne({ role: 'superuser' });
if (!superuser) {
console.log('No superuser found');
return;
}
console.log('Found superuser:', superuser.email);
// Create JWT token
const token = jwt.sign(
{
userId: superuser._id,
email: superuser.email,
role: superuser.role,
tenantId: superuser.tenantId
},
process.env.JWT_SECRET || 'your-secret-key',
{ expiresIn: '24h' }
);
console.log('\nGenerated JWT Token:');
console.log(token);
await mongoose.disconnect();
} catch (error) {
console.error('Error:', error);
}
}
createAuthToken();