GWT (JSNI) 客户端的 U2F JavaScript
U2F JavaScript for Client Side in GWT (JSNI)
我正在尝试使用此源代码从 GWT 项目中的 U2F 令牌获取响应:
public class Test implements EntryPoint {
@Override
public void onModuleLoad() {
Window.alert("Alert 3:"+u2FTest());
}
public static native String u2FTest()/*-{
var respond = {rep: "Clear"};
var RegistrationData = {"challenge":"dG7vN-E440ZnJaKQ7Ynq8AemLHziJfKrBpIBi5OET_0",
"appId":"https://localhost:8443",
"version":"U2F_V2"};
$wnd.u2f.register([RegistrationData], [],
function(data) {if(data.errorCode) {
alert("U2F failed with error: " + data.errorCode);
return;
}
respond.rep=JSON.stringify(data);
alert("Alert 1: "+respond.rep);
});
alert("Alert 2: "+respond.rep);
return respond.rep;
}-*/;
}
出于某些原因,我收到这样的警报:
- (警报 2)首先是 "Clear" 结果
- (警报 3)和 "Clear"
- (警报 1)带有令牌响应
通常我必须得到 (Alert 1) 和 Token 响应,然后是 2,3。那么我如何才能停止执行直到我得到令牌响应
谢谢,
拥抱异步!
public static native void u2FTest(com.google.gwt.core.client.Callback<String, Integer> callback) /*-{
// …
$wnd.u2f.register(regReqs, signReqs, $entry(function(response) {
if (response.errorCode) {
callback.@com.google.gwt.core.client.Callback::onFailure(*)(@java.lang.Integer::valueOf(I)(response.errorCode));
} else {
callback.@com.google.gwt.core.client.Callback::onSuccess(*)(JSON.stringify(response));
}
}));
}*-/;
(不要忘记在 $entry()
中包装回调,以便将异常路由到 GWT.UnhandledExceptionHandler
,如果有的话)
我正在尝试使用此源代码从 GWT 项目中的 U2F 令牌获取响应:
public class Test implements EntryPoint {
@Override
public void onModuleLoad() {
Window.alert("Alert 3:"+u2FTest());
}
public static native String u2FTest()/*-{
var respond = {rep: "Clear"};
var RegistrationData = {"challenge":"dG7vN-E440ZnJaKQ7Ynq8AemLHziJfKrBpIBi5OET_0",
"appId":"https://localhost:8443",
"version":"U2F_V2"};
$wnd.u2f.register([RegistrationData], [],
function(data) {if(data.errorCode) {
alert("U2F failed with error: " + data.errorCode);
return;
}
respond.rep=JSON.stringify(data);
alert("Alert 1: "+respond.rep);
});
alert("Alert 2: "+respond.rep);
return respond.rep;
}-*/;
}
出于某些原因,我收到这样的警报:
- (警报 2)首先是 "Clear" 结果
- (警报 3)和 "Clear"
- (警报 1)带有令牌响应
通常我必须得到 (Alert 1) 和 Token 响应,然后是 2,3。那么我如何才能停止执行直到我得到令牌响应 谢谢,
拥抱异步!
public static native void u2FTest(com.google.gwt.core.client.Callback<String, Integer> callback) /*-{
// …
$wnd.u2f.register(regReqs, signReqs, $entry(function(response) {
if (response.errorCode) {
callback.@com.google.gwt.core.client.Callback::onFailure(*)(@java.lang.Integer::valueOf(I)(response.errorCode));
} else {
callback.@com.google.gwt.core.client.Callback::onSuccess(*)(JSON.stringify(response));
}
}));
}*-/;
(不要忘记在 $entry()
中包装回调,以便将异常路由到 GWT.UnhandledExceptionHandler
,如果有的话)