我有一个包含用户名和密码的登录表单。我正在尝试使用Nest Js身份验证策略here验证这些凭据。因此,在相应的auth.service.ts文件中,我正在使用“ nativescript核心模块http”对OAuth URL进行POST请求以验证凭据。但这不起作用:
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;
}
}
当我在上述代码到位后运行“嵌套启动”时,收到错误:找不到模块“ ./http-request”
我不确定这是怎么回事,我尝试过“ npm install http-request”,它也不起作用。 基本上,我需要将凭据发布到NestJs中的OAuth URL。有指导吗?谢谢。
尝试使用NestJS中的HttpModule。您也可以从npm尝试request,但他们已弃用此软件包。从我在他们的讨论中看到的结果,该程序包仍然有效,但是您将无法获得任何支持。这是它的一些alternatives。
我不确定您使用的是正确的request
npm模块。我在说:
import { request } from "tns-core-modules/http"
祝你好运!