跳转到内容

完成imagekit认证前置

发布于:

依据ImageKit的官方文档,我们需要在后台SDK传入API公钥,私钥和URL端点,前面已经配置好了。

但是,想要将图片上传到imagekit的媒体库,还需要后端服务器用私有密钥对请求进行验证

怎么验证?

使用imagekit-nestjs封装好的方法

我这里新建了user模块

nest g resource user
//user.controller.ts
import { Controller, Get } from "@nestjs/common";
import { UserService } from "./user.service";

@Controller("user")
export class UserController {
  constructor(private readonly userService: UserService) {}

  @Get("keys")
  async getImageKitKeys() {
    const res = await this.userService.getAuthParameters();
    return res;
  }
}
//user.service.ts
import { Injectable } from "@nestjs/common";
import { ImageKitService } from "imagekit-nestjs";

@Injectable()
export class UserService {
  constructor(private readonly imageKitService: ImageKitService) {} // 通过构造函数注入 ConfigService

  async getAuthParameters() {
    // 获取 ImageKit 的认证参数
    const keys = await this.imageKitService.getAuthenticationParameters();
    return keys; // 返回密钥
  }
}

开启跨域

//main.ts
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.enableCors();
  await app.listen(3005);
}
bootstrap();

启动服务

nest start

根据官方文档所说,如果成功的话会返回三个参数

用postman试一下

完成!

寥寥数笔,花了我三个多小时🫤

参考

CodeVisionEvgen/imagekit-nestjs: Imagekit nestjs module (github.com)

React (imagekit.io)

API keys (imagekit.io)

Nest 通关秘籍 - zxg_神说要有光 - 掘金小册 (juejin.cn)