首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用中间件加密adonis js 5响应数据

如何使用中间件加密adonis js 5响应数据
EN

Stack Overflow用户
提问于 2022-06-23 09:29:24
回答 1查看 41关注 0票数 0

我想使用中间件加密从Adonisjs5响应发送的数据。

我从服务类api返回响应数据,以便以这种方式对前端作出反应:

代码语言:javascript
复制
public async login(username:string,password:string)
{
   return {'status':'success','data':{'username':username,'password':password }};
}

现在,我想在adonis js 5中间件中获取这些数据,并首先对其进行加密,然后发送到客户端。我无法在adonis js 5中间件中获得返回的响应数据。请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2022-06-25 13:45:31

  • 使用adonis创建一个新的中间件类,比方说EncryptMiddleware来源
代码语言:javascript
复制
node ace make:middleware EncryptMiddleware
  • kernel.ts文件中将您的中间件文件注册为全局或命名中间件。来源
代码语言:javascript
复制
/*
|--------------------------------------------------------------------------
| Global middleware
|--------------------------------------------------------------------------
*/
Server.middleware.register([() => import('App/Middleware/EncryptMiddleware')])

代码语言:javascript
复制
/*
|--------------------------------------------------------------------------
| Named middleware
|--------------------------------------------------------------------------
*/
Server.middleware.registerNamed({ encryptResponse: () => import('App/Middleware/EncryptMiddleware') })
  • 如果您使用命名中间件,那么您必须在所需的每个路由或路由组上使用它。如下所示:
代码语言:javascript
复制
Route.get('dashboard', 'DashboardController.index').middleware('encryptResponse') // 
  • 现在,将加密逻辑添加到EncryptMiddleware类中的App/Middleware/EncryptMiddleware中。来源
代码语言:javascript
复制
import Encryption from '@ioc:Adonis/Core/Encryption'
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'

export default class EncryptMiddleware {
  public async handle(
    { response, request }: HttpContextContract,
    next: () => Promise<void>
  ) {
    // Some encryption logic => e.g. encrypt body here
    const encryptedResponse = Encryption.encrypt(request.body())

    // Send encrypted data to the response
    response.send(encryptedResponse)

    await next()
  }
}
  • 结果:您将得到加密的响应体,现在您必须解密客户端的响应。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72727819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档