Как отправить данные на URL-адрес из кода NestJs?
У меня есть форма входа с именем пользователя и паролем. Я пытаюсь проверить эти учетные данные с помощью Nest Js стратегии аутентификации здесь. Итак, в соответствующем файле auth.service.ts я использую "основные модули nativescript http" для выполнения запроса POST к URL-адресу OAuth для проверки учетных данных. Но это не работает:
import { Injectable } from '@nestjs/common';
import { request } from "tns-core-modules/http";
const OAUTH_URL = 'url';
@Injectable()
export class AuthService {
async validateUser(username: string, password: string): Promise<any> {
let data = new FormData();
data.set('client_id', 'sb-nestjs-app!t36258');
data.set('client_secret', 'XrHuBRhyvuVNYNJNHlWLgcuBIyc=');
data.set('username', username);
data.set('password', password);
data.set('grant_type', 'password');
data.set('response_type', 'token');
request({
url: OAUTH_URL,
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Accept": "application/json;charset=utf8"
},
content: data
}).then((response) => {
console.log('response => ' + response + ' statuscode ' + response.statusCode);
if (response.statusCode == 200) {
const token = response.content['access_token'];
//TODO:
// need to send scope also
return token;
}
}, (e) => {
console.log('error' + e);
return null;
});
return null;
}
}
Когда я запускаю nest start после размещения кода выше, я получаю сообщение об ошибке: Cannot find module './http-request'
Я не уверен, что здесь происходит, я попробовал "npm install http-request", это тоже не сработало. В принципе, мне нужно отправить учетные данные POST на URL-адрес OAuth в NestJs. Любое руководство? Спасибо.
1 ответ
Попробуйте использовать HttpModule от NestJS. Также вы можете попробовать запрос от npm, но они устарели от этого пакета. Из того, что я видел в их обсуждении, пакет все еще работает, но у вас не будет поддержки для него или чего-то еще. Вот несколько альтернатив этому.
Я не уверен, что вы используете правильный request
модуль npm. Я говорю о:
import { request } from "tns-core-modules/http"
Удачи!