在我的项目中,由于不使用WebApi,因此无法通过标题对用户进行身份验证。因此,我运行了所有WJT令牌服务,并使用Roles等生成了用户令牌。问题是当我将令牌添加到页眉时,初始页面无法加载。
async await functions
Jwt初始化程序:
app.post('/', async (req, res) => {
try {
const { email } = req.body.email; // destructuring
const usuarioEncontrado = await Usuario.findOne({email: email});
// Validate user exist
if (!usuarioEncontrado) { // when not exist return null
throw res.status(404).json({error: 'El usuario no existe'});
}
// validate user pass
if (!bcrypt.compareSync(req.body.password, usuarioEncontrado.password)) {
throw res.status(404).json({error: 'No match'});
}
const token = jwt.sign( // generate token
{
usuario: usuarioEncontrado
},
SEED,
{
expiresIn: (60 * 60)
}
);
res.status(200).json({ // send response
token: token,
usuario: usuarioEncontrado
});
} catch (e) { // send error
res.status(404).json(e);
}
}
配置:
app.Use(async (context, next) =>
{
var tk = JsonConvert.DeserializeObject<UserModel>(context.Session.GetString("user"));
if (!String.IsNullOrEmpty(tk.Token))
{
context.Request.Headers.Add("Authorization", "Bearer " + tk.Token);
}
await next();
});