eggjs 怎么实现获取用户信息接口?

简介: eggjs 怎么实现获取用户信息接口?

前面几篇文章已经实现了登录注册接口,鉴权的相关工作。下面开始实现怎么获取用户信息。


1、新建获取用户信息的路由

'use strict';
/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller, middleware } = app;
  // 传入加密字符串
  const verify_token = middleware.verifyToken(app.config.jwt.secret);
  // 注册路由
  router.post('/api/user/register', controller.user.register);
  // 登录路由
  router.post('/api/user/login', controller.user.login);
  // 测试 token 解析
  router.get('/api/user/token', verify_token, controller.user.getTokenInfo);
  // 获取用户信息
  router.get('/api/user/getUserInfo', verify_token, controller.user.getUserInfo);
};



2、编写 getUserInfo 函数获取数据


  1. 获取请求头 authorization 属性,值为 token
  2. 用 app.jwt.verify(token, app.config.jwt.secret),解析出 token 的值
  3. 根据用户名,在数据库查找相对应的id操作


  // 获取用户信息
 asyncgetUserInfo() {
   try {
     const { ctx, app } = this;
     // 1. 获取请求头 authorization 属性,值为 token
     const token = ctx.request.header.authorization;
     // 2. 用 app.jwt.verify(token, app.config.jwt.secret),解析出 token 的值
     const decode = await app.jwt.verify(token, app.config.jwt.secret);
     // 3、根据用户名,在数据库查找相对应的id操作
     const userInfo = await ctx.service.user.getUserByName(decode.username);
     // 返回 token
     ctx.body = {
       status: 200,
       desc: '获取成功',
       data: {
         id: userInfo.id,
         username: userInfo.username,
         signature: userInfo.signature,
         avatar: userInfo.avatar,
       }
     };
   } catch (error) {
     ctx.body = {
       status: 500,
       desc: '获取失败',
       data: null
     }
   }
 }



3、测试用户获取接口


  1. 登录生成 token
  2. 在测试接口请求头带上 token 获取数据

先新建接口保存



7801d252662f46db893e5e7e3cd84bad.png


然后登录拿到 token 运行

d1725d9502454cc29c698ee6a27127cb.png





目录
相关文章
|
4月前
|
前端开发 JavaScript Serverless
中后台前端开发问题之通过低代码实现前后端交互如何解决
中后台前端开发问题之通过低代码实现前后端交互如何解决
49 0
|
5月前
JeecgBoot 短信验证码接口,如何实现防刷机制?
短信接口防刷,主要通过两个方面来实现:一个是短信接口加签和时间戳;另外针对短信接口,增加防刷 check 机制
96 1
|
4月前
|
API 开发者 Python
API接口:原理、实现及应用
本文详细介绍了API接口在现代软件开发中的重要性及其工作原理。API接口作为应用程序间通信的桥梁,通过预定义的方法和协议实现数据和服务的共享。文章首先解释了API接口的概念,接着通过Python Flask框架示例展示了API的设计与实现过程,并强调了安全性的重要性。最后,本文还讨论了API接口在Web服务和移动应用程序等领域的广泛应用场景。
|
6月前
|
JSON 前端开发 Java
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
225 6
|
7月前
|
XML JSON API
api接口的使用原理是什么?
总之,API接口的使用原理基于协议、规范和约定,允许不同的应用程序或系统之间进行通信和交互。这种通信方式使得开发人员能够轻松地利用外部服务或资源,从而实现更丰富的功能和服务。
70 0
|
前端开发
【面试题】:前端怎么实现组件的封装和上传
前端如何实现组件的封装以及上传
218 0
|
7月前
|
数据可视化 数据挖掘 物联网
API接口:原理、设计与应用
随着互联网技术的发展,应用程序之间的交互变得越来越频繁。API(应用程序编程接口)作为不同应用程序之间的桥梁,发挥着越来越重要的作用。本文将详细介绍API接口的原理、设计与应用,并通过部分代码示例帮助读者更好地理解。
|
7月前
|
小程序 前端开发 JavaScript
java后台restTemplate生成二小程序维码,前端渲染
java后台restTemplate生成二小程序维码,前端渲染
158 0
|
7月前
|
小程序
uniapp 微信小程序请求拦截器 接口封装
uniapp 微信小程序请求拦截器 接口封装
|
XML Java API
深入谈谈API接口的作用
深入谈谈API接口的作用

热门文章

最新文章