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





目录
相关文章
|
3月前
|
API 开发者 Python
API接口:原理、实现及应用
本文详细介绍了API接口在现代软件开发中的重要性及其工作原理。API接口作为应用程序间通信的桥梁,通过预定义的方法和协议实现数据和服务的共享。文章首先解释了API接口的概念,接着通过Python Flask框架示例展示了API的设计与实现过程,并强调了安全性的重要性。最后,本文还讨论了API接口在Web服务和移动应用程序等领域的广泛应用场景。
|
5月前
|
JSON 前端开发 Java
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
151 6
|
6月前
|
XML JSON API
api接口的使用原理是什么?
总之,API接口的使用原理基于协议、规范和约定,允许不同的应用程序或系统之间进行通信和交互。这种通信方式使得开发人员能够轻松地利用外部服务或资源,从而实现更丰富的功能和服务。
56 0
|
前端开发
【面试题】:前端怎么实现组件的封装和上传
前端如何实现组件的封装以及上传
211 0
|
6月前
|
数据可视化 数据挖掘 物联网
API接口:原理、设计与应用
随着互联网技术的发展,应用程序之间的交互变得越来越频繁。API(应用程序编程接口)作为不同应用程序之间的桥梁,发挥着越来越重要的作用。本文将详细介绍API接口的原理、设计与应用,并通过部分代码示例帮助读者更好地理解。
uniapp 请求接口的方式
uniapp 请求接口的方式
365 1
|
6月前
|
小程序
uniapp 微信小程序请求拦截器 接口封装
uniapp 微信小程序请求拦截器 接口封装
[Nestjs] 手摸手之简单封装API接口的返回结果
介绍:在 NestJs 中,你可以自定义一个统一的响应封装来支持成功、错误和分页响应。
284 0
|
前端开发 算法
前端开发常用的方法封装
截取地址栏里携带的参数、时间转换工具、字符串的截取等......
68 0
|
前端开发 数据安全/隐私保护
前端开发常用的方法封装(二)
将阿拉伯数字翻译成中文的大写数字、将数字转换为大写金额、 判断一个元素是否在数组中和数组排序等......
85 0