Как отправить данные на URL из кода Nest Js? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть форма входа с именем пользователя и паролем. Я пытаюсь проверить эти учетные данные, используя стратегию аутентификации Nest Js здесь . Таким образом, в соответствующем файле auth.service.ts я использую «nativescript core modules 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' после кода выше на месте, я получаю сообщение об ошибке: Не удается найти модуль './http-request'

I Я не уверен, что здесь происходит, я попытался "npm установить http-запрос", он тоже не работал. По сути, мне нужно отправить учетные данные в URL-адрес OAuth в Nest Js. Любое руководство? Спасибо.

1 Ответ

0 голосов
/ 18 февраля 2020

Попробуйте с HttpModule из Гнездо JS. Также вы можете попробовать request from npm, но они отказались от этого пакета. Из того, что я видел в их обсуждении, пакет все еще работает, но у вас не будет поддержки для него или чего-либо еще. Вот несколько альтернатив .

Я не уверен, что вы используете правильный request npm модуль. Я говорю о:

import { request } from "tns-core-modules/http"

Удачи!

...