这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战
上一篇文章中,我们搭建了项目的基本结构和封装了一些工具类的文件,并写了一个注册接口
详细请看这篇文章:第一篇文章
登录接口实现
graph TD
登录接口 --> 判断账号是否存在 --> 加密前端传入的密码进行数据库匹配 --> 返回true/false --> ture/颁发一个token用于登录凭证
实现基本的登录接口
1 创建auth.router.js文件,并创建对应的路由
2. 创建verfLogin
中间件,用来判断数据是否为合法
在之前的注册中,写过一个方法,是用于查询数据库中用户名是否存在的,在这里我们可以使用它
将用户传入的密码进行md5
加密,然后判断两者是否一致来判断密码是否一致,不一致我们就手动抛出异常,然后在我们的App文件中的error-handle.js
来进行错位处理,将处理完后的数据保存到ctx.user
中,传入到下一个中间件中
3. 当前一个中间件执行无误后,最后执行我们的登录操作,在登录的时候,我们需要给它颁发一个令牌,叫token
,用于我们之后的各种权限验证
4. 颁发token
令牌,我们这里使用的库是jsonwebtoken
npm install jsonwebtokn
,我们采用的是非对称加密方式
5. 生成私钥和公钥
openssl 进入交互
生成私钥
genrsa -out private.key 1024
生成公钥
rsa -in private.key -pubout -out public.key
5. 将私钥和公钥读取处理,并保存到公共变量中,这里的变量需要写在后面,因为写在前面会被覆盖
6. 使用我们创建的私钥来颁发token
,过期的时间设置为24h,并将登录成功用户的id, name, token
返回
7. 测试登录接口
项目地址?
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!