我試圖訪問一個網站的端點(lighterpack.com,github:https://github.com/galenmaly/lighterpack)。爲了測試我做這個的能力,我試圖在edit.js(底部)中對'signin'函數進行POST調用。我的登錄請求中缺少什麼?
我使用郵差發送POST請求,將其發送對象{用戶名名稱:myusername,密碼:myhashedpasswordandusername}
我散列對象手動現在我的本地機器上,並複製了這一點郵遞員。我創建了一個帶有「crypto-js」依賴項的JS文件,並在設置var CryptoJS = require('crypto-js')後運行edit.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調用哈希數據後有一個額外的逗號..拿出一個。 – Daniel
對不起,不清楚。具有ajax調用的edit.js代碼不是我的代碼,而是網站。此代碼是來自網站登錄表單的操作。 – Joe