SIGNED CONFIGURATION KEYS FOR API BINKING REQUESTS IN NESTJS
In interacting with the Binance API using your Nestjs Backynd, it is essential to be able to sign the keys to authenticate requests and prevent unauthorized access. In this article, we will provide guidance on the definition of signed keys to /API/V3/Command and Order/Testpoints.
Why are the keys signed?
The Binance API requires a valid API key to complete certain operations. However, by default, the key is not signed, which makes it vulnerable to unauthorized access. To solve this problem, you will need to generate a secret application (also known as X-Signature-Public-You) and use it to sign your requests.
Generation of signed keys
For a valid signature, follow these steps:

: After connecting to the development panel, browse the API key and click "Manage a new application secret". You can choose from JSON Web tokens (JWT) or public keys encryption (SSEK).
and use -o to create an authentication service.Example of implementation
Here is an example of implementing the setting of a signed key to/API/V3/command and control points/test using JWT:
`Different
import {injectable} of ‘@nestjs/common’;
Import * as JWT of “JsonWettokn”;
@Injectable ()
Authservice export class {
Private AppSecret: String;
Builder () {
This.AppSecret = Process.env.binance_app_secret;
}
Async GenerateToken (User: User): Promises
CONST SAYLOAD = {user};
Return jwt.sign (useful task, this.appsecret, {Expiresin: ‘1h’});
}
Async VerifyToken (token: string): promise
To try {
decoded cons = jwt.verify (token, this.appsecret);
return decoded.user as a user;
} Catch (error) {
Stay null;
}
}
Async Createorder (User: User, Command: Commandinput): Promise
Token Const = Wait Authservice.GenerateTeTEKEN (User);
CONST SAYLOAD = {user, command};
CONST TRACK = jwt.sign (useful task, this.appsecret, {Expiresin: ‘1h’});
Return {… Order, Subscription};
}
}
`
In the example above:
and stored it as an environmental variable.Mounting everything together
Here is an updated version of your Nestjs app that includes signed keys:
Different
import {module} of ‘@nestjs/common’;
Import {AppController} of ‘./app.controller’;
Import {appservice} of ‘./app.service’;
Import {autoserservice} of ‘./autoth.service’;
@Module({
Controllers: [Appcontroller],
Suppliers: [authservice, appservice],
})
Appmodule Export Class {}
`
Different
Import express from “express”;
Import Authcontroller from ‘/Autoth.controller’;
Import Autentoss of ‘./autoth.service’;
Const app = Express ();
APP.USE (Express.Json ());
App.Post (‘/API/V3/Command’, asynchronous (Req: Request, Res: Answer) => {
Consta command = req.body;
To try {
// Create a new command with signed key
CONST TOKEN = Wait for authservice.generatetoken ({user: ‘your_user_name’});
Consta Sayload = {user: ‘your_user_us’, Command};
CONST -WORK = JWT.Sign (Useful Task, ‘Your_App_Secret_Key’);
Return Re.status (201) .Json ({
Message: “The command created successfully!”,
Data: {
…command,
Signature,
},
});
} Catch (error) {
console.error (error);
Return Re.Sstatus (500).