如何使用ASP.NET Core 3.1 MVC授权承载令牌

时间:2020-03-28 18:37:28

标签: c# asp.net-core

在我的项目中,由于不使用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();
        });

0 个答案:

没有答案