vue项目实战(一)——资金管理系统-04头像问题和登录接口

14 篇文章 0 订阅

1.gravatar来解决头像问题

npm i gravatar

对应的Post请求

/ @route  POST api/users/register
// @desc   返回的请求的json数据
// @access public
router.post('/register', (req, res) => {
    // 查询数据库中是否拥有邮箱
    User.findOne({
        email: req.body.email
    }).then(user => {
        if (user) {
            return res.status(400).json('邮箱已被注册!');
        } else {
            const avatar = gravatar.url(req.body.email, {
                s: '200',
                r: 'pg',
                d: 'mm'
            });
            const newUser = new User({
                name: req.body.name,
                email: req.body.email,
                avatar,
                password: req.body.password,
            });

            bcrypt.hash(newUser.password, null, null, (err, hash) => {
                if (err) throw err;
                newUser.password = hash;
                newUser
                    .save()
                    .then(user => res.json(user))
                    .catch(err => console.log(err));
            });
        }
    });
});

2.通过Postman测试:
在这里插入图片描述
测试成功的页面:
在这里插入图片描述
把标注的粘贴到浏览器中

    "avatar": "//www.gravatar.com/avatar/b427e9d11e715b6ee2066917c06f567d?s=200&r=pg&d=mm",

得到的结果如下:
在这里插入图片描述
可以进入www.guavatar.com,生成自己全球唯一的头像。
2.搭建登录接口
routes\api\users.js的代码如下:

// @route  POST api/users/login
// @desc   返回token jwt passport
// @access public
router.post('/login', (req, res) => {
    const email = req.body.email;
    const password = req.body.password;
    // 查询数据库
    User.findOne({
            email
        })
        .then(user => {
            if (!user) {
                return res.status(404).json({
                    email: "用户不存在!"
                });
            }
            //密码匹配
            // Load hash from your password DB.
            bcrypt.compare(password, user.password)
                .then(isMatch => {
                    if (isMatch) {
                        res.json({
                            msg: "success"
                        });
                    } else {
                        return res.status(400).json({
                            password: "密码错误"
                        });
                    }
                })
        })
});

开始进行测试:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值