редактировать
Я понял, что это связано с локальным паспортом, требующим либо пароль, либо пользовательскую функцию проверки. Я хотел бы пойти по пути проверки, но я собираюсь отказаться и просто использовать стандартный метод паролей из-за временных ограничений, которые у меня есть в настоящее время для моего проекта.
=============================================== ==
Я создаю логин для своего сайта и сталкиваюсь со странной ошибкой 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
они хешировали свой пароль, мне это было не нужно.