私の browserId ログイン コードは、hereからほとんどそのままです。しかし、ルートを開くと、loggedInEmail
が設定されているかどうかに関係なく、リクエストが自動的に送信され、永遠の更新ループが発生します。私のJavascriptコードは、生成されたときです:
navigator.id.watch({
'loggedInEmail': null,
'onlogin': (function (jmId_1_0) {
$.ajax({
'data': {
'assertion': jmId_1_0
},
'error': (function (jmId_1_1, jmId_1_2, jmId_1_3) {
alert(("login failure" + jmId_1_1));
}),
'success': (function (jmId_1_4, jmId_1_5, jmId_1_6) {
console.log(jmId_1_4);
}),
'type': "POST",
'url': "\/login"
});
}),
'onlogout': (function () {
$.ajax({
'error': (function (jmId_1_7, jmId_1_8, jmId_1_9) {
alert(("logout failure" + jmId_1_7));
}),
'success': (function (jmId_1_10, jmId_1_11, jmId_1_12) {
window.location.reload();
}),
'type': "POST",
'url': "\/logout"
});
})
});
$((function () {
$("#loginBtn").click((function (jmId_1_13) {
jmId_1_13.preventDefault();
navigator.id.request();
return false;
}));
}));
ユーザーがボタンをクリックしても、onlogin
関数は常に呼び出されます。それは browserId 自体のどこかにあるに違いないか、根本的に間違ったことをしました。
完全なテンプレート コードは、ここにあります。