0
の代わりにエラーを与えるアプリクロム郵便配達いくつかのいずれかがここでの問題を見つけるために私を助けてください: requester.js:6211 POST http://localhost:7000/api/login 403 (Forbidden)send @ requester.js:6211(anonymous function) @ requester.js:4811dispatch @ jquery.min.js:3i @ jquery.min.js:3 requester.js:1056 Defining mode
:`特急 - 常に応答
私は私のusername
とpassword
を投稿しようとしているとき、私はいつものようにエラーを取得しています
ここでは何が問題なのか分かりません。
var User = require('../models/user');
var config = require('../../config');
var secretKey = config.secretKey;
var jsonwebtoken = require("jsonwebtoken");
function createToken (user) {
var token = jsonwebtoken.sign({
_id : user.id,
name : user.name,
username: user.username
}, secretKey, {
expiresIn : "1440m"
})
return token;
}
module.exports = function(app, express) {
var api = express.Router();
api.post('/signup', function(req, res) {
var user = new User({
name : req.body.name,
username : req.body.username,
password : req.body.password
});
user.save(function(err) {
if(err) {
res.send(err);
return;
}
res.json({message : "User has been created!"});
});
api.get('/users', function(req, res) {
User.find({}, function(err, users) {
if(err) {
res.send(err);
return;
}
res.json(users);
})
});
api.post('/login', function(req, res) {
User.findOne({
username : req.body.username
}).select('password').exec(function(err, user) {
if(err) throw err;
if(!user) {
res.send({ message : "User doesnt Exist!"})
} else if(user) {
var validPassword = user.comparePassword(req.body.password);
if(!validPassword) {
res.send({ message : "Invalid Password"});
} else {
var token = createToken(user);
res.json({
success : true,
message : "Successfuly loged In!",
token : token
})
}
}
})
})
});
//middleware
api.use(function(req, res, next) {
console.log("Somebody just came to our app!");
var token = req.body.token || req.param('token') || req.headers['x-access-token'];
// check if token exist
if(token) {
jsonwebtoken.verify(token, secretKey, function(err, decoded) {
if(err) {
res.status(403).send({ success: false, message: "Failed to authenticate user"});
} else {
req.decoded = decoded;
next();
}
});
} else {
res.status(403).send({ success: false, message: "No Token Provided"});
}
});
//Destination B
api.get("/", function(req, res) {
res.json("Hello World!");
})
return api;
}
あなたはポストのサインアップコールバックからのGETとPOSTを取る必要があります。また、ルートは/ api/loginでなく、/ loginでなければなりません。 –
「ポストサインアップコールバックから取得して投稿する必要があります。 – 3gwebtrain
api.get( '/ users' ...コールバックの中にあります。エクスポートされた関数に直接入ります。 –