Ошибка POST 400 (Bad Request) при входе по паспорту - PullRequest
0 голосов
/ 05 января 2019

редактировать

Я понял, что это связано с локальным паспортом, требующим либо пароль, либо пользовательскую функцию проверки. Я хотел бы пойти по пути проверки, но я собираюсь отказаться и просто использовать стандартный метод паролей из-за временных ограничений, которые у меня есть в настоящее время для моего проекта.

=============================================== ==

Я создаю логин для своего сайта и сталкиваюсь со странной ошибкой 400. Ошибка при попытке войти или зарегистрироваться, кажется, происходит прямо на маршруте перенаправления в моем файле signin-api-routs, где он не появляется. это вообще паспорт или маршрут / api / signin.

серверная часть js

        $.post("/api/signup", {
        name: name,
        age: age,
        userLat: myLat,
        userLong: myLong
    }).then(function (data) {
        console.log("this ran1")
        window.location.replace(data);
    }).catch(function (err) {
        console.log(err);
    });

мой код подписи-api-маршруты

app.post("/api/signin", passport.authenticate("local"), function(req, res) {
console.log("err here3")
res.json("/home");
});

app.post("/api/signup", function(req, res) {
console.log(req.body);
db.User.create({
  name: req.body.name,
  age: req.body.age,
  userLat: req.body.userLat,
  userLong: req.body.userLong
}).then(function() {
  console.log("err here1")
  res.redirect(307, "/api/signin");
  console.log("err here2")
}).catch(function(err) {
  console.log(err);
  res.json(err);
});
});

мой паспорт.js

 var passport = require("passport");
 var LocalStrategy = require("passport-local").Strategy;

 var db = require("../models");

passport.use(new LocalStrategy(
// Our user will sign in using name and age, rather than a "username"
{
usernameField: "name",
userageField: "age"
},
function(name, age, done) {
console.log("err here2.5");
// When a user tries to sign in this code runs
db.User.findOne({
  where: {
    name: name,
    age: age
  }
 }).then(function(dbUser) {
  // If there's no user with the given age and name
  if (!dbUser) {
    return done(null, false, {
      message: "Incorrect age or name."
    });
  }
  return done(null, dbUser);
});
}
));

passport.serializeUser(function(user, cb) {
cb(null, user);
});
passport.deserializeUser(function(obj, cb) {
cb(null, obj);
});

// Exporting our configured passport
module.exports = passport;

я запустил это с console.logs в маршруте signin-api, и это настолько далеко, насколько терминал добирается до того, как он доберется до ошибки 400 в браузере

=====================================

Приложение прослушивания на порт 8080 Выполнение (по умолчанию): INSERT INTO Users (id, name, age, userLat, userLong, createdAt, updatedAt) VALUES (DEFAULT, PublicAPI, 27) , 28.4031947, -80.6673939, '2019-01-05 17:47:23', '2019-01-05 17:47:23');

ошибка здесь1

ошибка здесь2

но другой пример, который работает при запуске:

==================================== *

==> ? Прослушивание порта 8080. Посетите http://localhost:8080/ в своем браузере. Выполнение (по умолчанию): INSERT INTO Users (id, email, password, createdAt, updatedAt) VALUES (DEFAULT, 'dfdasrr @ gimaed.com', '$ 2om', '$ 2 $ 10 $ YubDrL1S9YNy2XM7IPbOneuowu8aTz6AQ1qJAhKooyJdCv.7YAteG ',' 2019-01-05 07:47:47 ',' 2019-01-05 07:47:47 ');

ошибка здесь1

ошибка здесь2

ошибка здесь2,5

Выполнение (по умолчанию): SELECT id, email, password, createdAt, updatedAt ОТ Users КАК User ГДЕ User. email = 'dfda =' dfdasrr @ gimaed.com ';

ошибка здесь3

они хешировали свой пароль, мне это было не нужно.

...