2016-04-27 8 views
0

ウェブサイトのエンドポイントにアクセスしようとしています(lighterpack.com、github:https://github.com/galenmaly/lighterpack)。これを行うための私の能力をテストするために、私はedit.js(下)の 'signin'関数にPOST呼び出しをしようとしています。サインインのリクエストには何が欠けていますか?

私はそれをオブジェクトの送信、POSTリクエストを送信するために郵便配達を使用しています、私は私のローカルマシン上で今手動でオブジェクトをハッシュし、それをコピーしてい

{ユーザー名:myhashedpasswordandusername:myusernameと指定、パスワードを}郵便配達員に。 "crypto-js"依存関係を持つJSファイルを作成し、var CryptoJS = require( 'crypto-js')を設定した後、edit.jsファイルが使用するコマンドを実行しました。

これは私が台無しにした部分かもしれませんが、どこに見えません。 I

私のハッシュファイルのコード:

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(); 
      } 
     }); 
    }); 
+1

ハッシュ後のajax呼び出しデータに余分なカンマがあります。それを取り出してください。 – Daniel

+0

申し訳ありませんが、明確ではありませんでした。 ajax呼び出しを持つedit.jsコードは私のコードではなく、ウェブサイトです。このコードは、Webサイトのログインフォームからのアクションです。 – Joe

答えて

0

だから誰かが私に答えを得ました。 githubには、CryptoJS変数を持つpublic/sha3.jsというファイルがあり、app.jsファイルにはそのファイルの情報(CryptoJS)がグローバル変数として宣言されています。

私はsha3.jsをコピーして、データを正しくハッシュしてログインすることができました。成功!

関連する問題