【发布时间】:2023-03-07 04:05:01
【问题描述】:
router.post('/login', function (req, res) {
let username = req.body.username;
let password = req.body.password;
console.log(username, "===> username");
console.log(password, "===> password");
User.findOne({
username: req.body.username,
},function (err, user) {
if (err) {
res.status(502).send({
"Message": "Db error",
"error": err
});
console.log("login if");
}
//console.log("log",user)
if (user) {
if (user.username === req.body.username && user.password == req.body.password) {
var token = jwt.sign({
username: req.body.username,
},process.env.SECRET_KEY, {
expiresIn: parseInt(process.env.EXPIRY_TIME)
});
res.send({
Message: "logged in sucessfully",
Token: token
})
}
} else {
res.status(404).send({
Message: "not found",
})
}
});
});
//上面的代码是服务器端的,它向邮递员发送响应,也向客户端发送true,但不能发送对象
//下面的代码是login.component.ts文件
login() {
this.loginservice.authenticate(this.username, this.password)
.subscribe((res) => {
console.log(" user is",res);
localStorage.setItem("user",res.toString());
this.router.navigate(['dashboard']);
}, (error) => {
console.log(error);
});
}
//最后一个代码是有作用的 验证(用户名,密码){
const url = environment.binanceserver + '/users/login';
console.log("Endpoint being hit", url, username, password);
const obj = {
"username": username,
"password": password
}
return this.http.post(url, obj);
【问题讨论】:
-
1.你得到什么错误? 2.
console.log('user id',res)的输出是什么? -
您是否尝试过添加 Content-type 标头?
-
1 跨域读取阻止 (CORB) 阻止了 MIME 类型 application/json 的跨域响应 127.0.0.1:3000/users/login。有关详细信息,请参阅chromestatus.com/feature/5629709824032768。
-
你确定
req.body不为空(当请求被服务器处理时)? -
你必须使用this中间件来避免express出现cors问题
标签: javascript node.js angular mean-stack