ダイジェスト認証を使用して検証する必要があるフォームがあります。私はまだ認証に取り組んでいますが、基本的な HTML フォームをレイアウトしました。
<form method="post" id="loginForm" class="validate">
<div data-role="fieldcontain">
<label for="password">Email:</label>
<input class="required email" type="text" name="username" id="username" placeholder="username@target.com">
</div>
<div data-role="fieldcontain">
<label for="password">Password:</label>
<input class="required" type="password" name="password" id="password" placeholder="password">
</div>
<input type="submit" value="Login">
</form>
メソッドを持つ digest_auth.js という外部 js ファイルもあります。
$('#loginForm').submit(function() {
alert('click');
username = $('#username').value();
password = $('#password').value();
realm = tokens['realm'];
nonce = tokens['nonce'];
qop = tokens['qop'];
alert('submitted');
ha1 = bcrypt(username + ":" + realm + ":" + password);
ha2 = bcrypt("GET:" + "http://localhost:8090/web/login");
response = bcrypt(ha1 + ":" + nonce + ":" + nc + ":" + cnonce + ":" + qop + ":" ha2);
$.ajax(
type: 'GET', // maybe POST?
url: url,
complete: function(xhr, status) {
if (status == 200) {
// success. save the nonce and nc in the local storage.
// whenever you send a request to the server, use the nonce
// and nc
alert('Success');
}
else {
// failure, try again
alert('Failure');
}
}
)
});
ただし、.submit は呼び出されていません。最初に alert() を追加しましたが、何も得られません。を使用して外部をリンクしました
<script type="text/javascript" src="digest_auth.js"></script>