Я пытаюсь получить доступ к конечным точкам веб-сайта (lighterpack.com, github: https://github.com/galenmaly/lighterpack). Чтобы проверить свою способность делать это, я пытаюсь сделать POST-вызов функции «signin» в edit.js (внизу).Что не хватает на мой запрос на вход?
Я использую Почтальон для отправки запроса POST, отправив ему объект {имя пользователя: MyUserName, пароль: myhashedpasswordandusername}
Я хэширование объекта вручную прямо сейчас на моей локальной машине, и копирование, что из Постману. Я создал JS-файл с зависимостью «crypto-js» и выполнил команду, которую использует файл edit.js, после установки var CryptoJS = require ('crypto-js').
Это может быть та часть, которую я испортил, но я не вижу, где. Я
Мой код хэширования файл:
var crypto = require('crypto-js')
var pass = "mypassword"
var name = "username"
var hash = crypto.SHA3(pass+name)
var hash= hash.toString(crypto.enc.Base64)
console.log(hash)
Я беру то, что консоль выходит из системы, и положить, что в моем Почтальон объекта как мой пароль. Я не понимаю, что в файле edit.js CryptoJS не отображается нигде, а не то, что я мог видеть в любом случае. Может ли кто-нибудь указать мне в правильном направлении?
Оригинальная функция edit.js:
$(".signin").on("submit", function(evt) {
evt.preventDefault();
var form = this;
var error = "";
var username = $(".username", this).val();
var password = $(".password", this).val();
if (!password) error = "Please enter a password.";
if (!username) error = "Please enter a username.";
if (error) {
$(".lpError", this).text(error).show();
return;
}
$(".lpError", this).text("").hide();
username = username.toLowerCase();
var hash = CryptoJS.SHA3(password+username);
hash = hash.toString(CryptoJS.enc.Base64);
$.ajax({
url: "/signin",
data: {username: username, password: hash, },
method: "POST",
error: function(data, textStatus, jqXHR) {
var error = "An error occurred.";
if (data.responseText) error = data.responseText;
$(".password", form).val("").focus();
$(".lpError", form).text(error).show();
},
success: function(data) {
$("#signin, #lpModalOverlay").fadeOut("slow", removeBlackout);
$(".password, .username", form).val("");
signedIn(data.username);
library.load(JSON.parse(data.library));
initWithLibrary();
}
});
});
В ваших данных вызова ajax после hash есть дополнительная запятая. Возьмите это. – Daniel
Извините, не было ясно. Код edit.js, который имеет вызов ajax, - это не мой код, а веб-сайты. Этот код является действием из формы входа на веб-сайт. – Joe