手把手教你用koa写项目接口

633 阅读2分钟

这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

上一篇文章中,我们搭建了项目的基本结构和封装了一些工具类的文件,并写了一个注册接口

详细请看这篇文章:第一篇文章

登录接口实现

graph TD
登录接口 --> 判断账号是否存在 --> 加密前端传入的密码进行数据库匹配 --> 返回true/false --> ture/颁发一个token用于登录凭证
实现基本的登录接口

1 创建auth.router.js文件,并创建对应的路由

image.png 2. 创建verfLogin中间件,用来判断数据是否为合法 在之前的注册中,写过一个方法,是用于查询数据库中用户名是否存在的,在这里我们可以使用它 将用户传入的密码进行md5加密,然后判断两者是否一致来判断密码是否一致,不一致我们就手动抛出异常,然后在我们的App文件中的error-handle.js来进行错位处理,将处理完后的数据保存到ctx.user中,传入到下一个中间件中 image.png 3. 当前一个中间件执行无误后,最后执行我们的登录操作,在登录的时候,我们需要给它颁发一个令牌,叫token,用于我们之后的各种权限验证 4. 颁发token令牌,我们这里使用的库是jsonwebtoken npm install jsonwebtokn ,我们采用的是非对称加密方式 5. 生成私钥和公钥

openssl 进入交互
    生成私钥
        genrsa -out private.key 1024
    生成公钥
        rsa -in private.key -pubout -out public.key  

image.png

image.png

image.png 5. 将私钥和公钥读取处理,并保存到公共变量中,这里的变量需要写在后面,因为写在前面会被覆盖 image.png 6. 使用我们创建的私钥来颁发token,过期的时间设置为24h,并将登录成功用户的id, name, token返回

image.png 7. 测试登录接口

image.png

项目地址🤭