Get Token 2

rc
DenisN 2025-03-28 13:04:57 -04:00
parent 408bbb82ba
commit 4bc36cf18b
3 changed files with 47 additions and 25 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,24 +1,18 @@
import { Controller, Get, Post } from '@nestjs/common'; import { Controller, Get, Post } from '@nestjs/common';
import { MufapiService } from './mufapi.service'; import { MufapiService, ConnectorsService } from './mufapi.service';
@Controller('api') @Controller('api')
export class MufapiController { export class MufapiController {
constructor(private readonly mufapiService: MufapiService) {}
constructor(private readonly mufapiService: MufapiService) {}
//Получаем данные по GET, потом это изничтожим
@Get() @Get()
async getHello() : Promise<string> { async getHello() : Promise<string> {
const user : string = "admin"; let connector : ConnectorsService = new ConnectorsService();
const password : string = "admin"; connector.GetConnData();
const conn : string = 'http://192.168.244.1/e-data-front/auth/login'; return await this.mufapiService.getAccessToken(connector.path, connector.creds, connector.options);
const creds : string = '{"login":"' + user + '","password":"' + password + '"}';
const options = {
headers: {'Content-Type' : 'application/json'}
};
console.log(await this.mufapiService.getAccessToken(conn, creds, options));
//return this.mufapiService.getAccessToken(conn, creds, options);
return await this.mufapiService.getAccessToken(conn, creds, options);
} }
//Получаем данные по POST будет финалка
@Post('menu') @Post('menu')
getMenu () : JSON { getMenu () : JSON {
let menu : JSON = JSON.parse('{"id": 2}'); let menu : JSON = JSON.parse('{"id": 2}');

View File

@ -4,28 +4,56 @@ import { error } from 'console';
import { response } from 'express'; import { response } from 'express';
import { Interface } from 'readline'; import { Interface } from 'readline';
//====================Начнем=================================
@Injectable()
//Класс для подключения и получения токена, потом расширим, если звезда засветит
export class ConnectorsService {
user : string; //логин на стороне сервака
password : string; //пароль к логину на стороне сервака
path : string; // путь, куда стучимся
creds : string; //правильная строка - солянка из логина и пароля, чем стучимся
options : any; //в основном здесь хидеры, а то без них не хочет работать
//Замечательный метод класса для инициализации свойств класса, сейчас в ручную, в дальнейшем планируется автоматом из конфы
GetConnData() {
this.user = "admin";
this.password = "admin";
this.path = 'http://192.168.244.1/e-data-front/auth/login';
this.creds = '{"login":"' + this.user + '","password":"' + this.password + '"}';
this.options = {
headers: {'Content-Type' : 'application/json'}
};
return 0;
};
//Замечетельный метод, пока не придумал назначение, но если есть Get, то должен быть и Set
SetConnData() {
};
};
//Класс основных методов для получения, обработки данных и дальнейшей пересылки в Exporter
@Injectable() @Injectable()
export class MufapiService { export class MufapiService {
token: string; //Глобальная переменная класса под токен
//Получение токена через шаблонизацию
async getAccessToken (path:string, body:string, headers) : Promise<string> { async getAccessToken (path:string, body:string, headers) : Promise<string> {
interface Token { interface Authtorise {
access_token: string; access_token: string;
}; };
let token : Token; let auth : Authtorise;
let ret : any = 'Error'; this.token = 'Error';
await axios.post(path, body, headers).then((response)=>{ await axios.post(path, body, headers).then((response)=>{
token = response.data; auth = response.data;
//console.log(token); this.token = auth.access_token;
//console.log(token.access_token);
ret = token.access_token;
}).catch((error)=>{ }).catch((error)=>{
ret = error; this.token = error;
}); });
return ret; return this.token;
} }
//Получение данных для формирования меню в МУФ
getMenu () : string { async getMenu () : Promise<string> {
return 'body'; return 'body';
} }