Skip to content

Commit 220535c

Browse files
committed
change options request to jquery ajax for safari browser
1 parent 9264f1c commit 220535c

10 files changed

+84
-89
lines changed

Demo/Pages/_Layout.cshtml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@
1212

1313

1414
<link href="https://fonts.googleapis.com/css?family=Work+Sans" rel="stylesheet">
15-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/sweetalert2"></script>
16-
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
15+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/sweetalert2" defer></script>
16+
<script type="text/javascript" src="~/js/jquery-3.6.0.min.js" defer></script>
17+
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous" defer></script>
1718
<!--<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>-->
1819

1920
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.10.1/sweetalert2.min.css" />
2021
<!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">-->
2122
<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.min.css" rel="stylesheet" type="text/css" />
22-
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
23+
<script src="https://use.fontawesome.com/releases/v5.3.1/js/all.js" defer></script>
2324
<style>
2425
html {
2526
scroll-behavior: smooth;

Demo/wwwroot/js/custom.login.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ async function handleSignInSubmit(event) {
1818
// send to server for registering
1919
let makeAssertionOptions;
2020
try {
21-
var res = await fetch('/assertionOptions', {
22-
method: 'POST', // or 'PUT'
23-
body: formData, // data can be `string` or {object}!
24-
headers: {
25-
'Accept': 'application/json'
26-
}
27-
});
28-
29-
makeAssertionOptions = await res.json();
21+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
22+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
23+
makeAssertionOptions = await $.post({
24+
url: '/assertionOptions',
25+
type: 'POST',
26+
data: formData,
27+
processData: false,
28+
contentType: false,
29+
}, 'json');
3030
} catch (e) {
3131
showErrorAlert("Request to server failed", e);
3232
}

Demo/wwwroot/js/custom.register.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,15 @@ async function handleRegisterSubmit(event) {
253253
}
254254

255255
async function fetchMakeCredentialOptions(formData) {
256-
let response = await fetch('/makeCredentialOptions', {
257-
method: 'POST', // or 'PUT'
258-
body: formData, // data can be `string` or {object}!
259-
headers: {
260-
'Accept': 'application/json'
261-
}
262-
});
263-
264-
let data = await response.json();
265-
266-
return data;
256+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
257+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
258+
return await $.post({
259+
url: '/makeCredentialOptions',
260+
type: 'POST',
261+
data: formData,
262+
processData: false,
263+
contentType: false,
264+
}, 'json');
267265
}
268266

269267
// This should be used to verify the auth data with the server
@@ -314,7 +312,7 @@ async function registerNewCredential(newCredential) {
314312
}
315313

316314
async function registerCredentialWithServer(formData) {
317-
let response = await fetch('/makeCredential', {
315+
let response = await fetch('/makeCredential', {
318316
method: 'POST', // or 'PUT'
319317
body: JSON.stringify(formData), // data can be `string` or {object}!
320318
headers: {

Demo/wwwroot/js/jquery-3.6.0.min.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Demo/wwwroot/js/mfa.login.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ async function handleSignInSubmit(event) {
1919
// send to server for registering
2020
let makeAssertionOptions;
2121
try {
22-
var res = await fetch('/assertionOptions', {
23-
method: 'POST', // or 'PUT'
24-
body: formData, // data can be `string` or {object}!
25-
headers: {
26-
'Accept': 'application/json'
27-
}
28-
});
29-
30-
makeAssertionOptions = await res.json();
22+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
23+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
24+
makeAssertionOptions = await $.post({
25+
url: '/assertionOptions',
26+
type: 'POST',
27+
data: formData,
28+
processData: false,
29+
contentType: false,
30+
}, 'json');
3131
} catch (e) {
3232
showErrorAlert("Request to server failed", e);
3333
}
@@ -104,7 +104,7 @@ async function verifyAssertionWithServer(assertedCredential) {
104104

105105
let response;
106106
try {
107-
let res = await fetch("/makeAssertion", {
107+
let res = await fetch("/makeAssertion", {
108108
method: 'POST', // or 'PUT'
109109
body: JSON.stringify(data), // data can be `string` or {object}!
110110
headers: {

Demo/wwwroot/js/mfa.register.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,15 @@ async function handleRegisterSubmit(event) {
102102
}
103103

104104
async function fetchMakeCredentialOptions(formData) {
105-
let response = await fetch('/makeCredentialOptions', {
106-
method: 'POST', // or 'PUT'
107-
body: formData, // data can be `string` or {object}!
108-
headers: {
109-
'Accept': 'application/json'
110-
}
111-
});
112-
113-
let data = await response.json();
114-
115-
return data;
105+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
106+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
107+
return await $.post({
108+
url: '/makeCredentialOptions',
109+
type: 'POST',
110+
data: formData,
111+
processData: false,
112+
contentType: false,
113+
}, 'json');
116114
}
117115

118116

@@ -164,7 +162,7 @@ async function registerNewCredential(newCredential) {
164162
}
165163

166164
async function registerCredentialWithServer(formData) {
167-
let response = await fetch('/makeCredential', {
165+
let response = await fetch('/makeCredential', {
168166
method: 'POST', // or 'PUT'
169167
body: JSON.stringify(formData), // data can be `string` or {object}!
170168
headers: {

Demo/wwwroot/js/passwordless.login.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ async function handleSignInSubmit(event) {
1212
// send to server for registering
1313
let makeAssertionOptions;
1414
try {
15-
var res = await fetch('/assertionOptions', {
16-
method: 'POST', // or 'PUT'
17-
body: formData, // data can be `string` or {object}!
18-
headers: {
19-
'Accept': 'application/json'
20-
}
21-
});
22-
23-
makeAssertionOptions = await res.json();
15+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
16+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
17+
makeAssertionOptions = await $.post({
18+
url: '/assertionOptions',
19+
type: 'POST',
20+
data: formData,
21+
processData: false,
22+
contentType: false,
23+
}, 'json');
2424
} catch (e) {
2525
showErrorAlert("Request to server failed", e);
2626
}
@@ -97,7 +97,7 @@ async function verifyAssertionWithServer(assertedCredential) {
9797

9898
let response;
9999
try {
100-
let res = await fetch("/makeAssertion", {
100+
let res = await fetch("/makeAssertion", {
101101
method: 'POST', // or 'PUT'
102102
body: JSON.stringify(data), // data can be `string` or {object}!
103103
headers: {

Demo/wwwroot/js/passwordless.register.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -98,17 +98,15 @@ async function handleRegisterSubmit(event) {
9898
}
9999

100100
async function fetchMakeCredentialOptions(formData) {
101-
let response = await fetch('/makeCredentialOptions', {
102-
method: 'POST', // or 'PUT'
103-
body: formData, // data can be `string` or {object}!
104-
headers: {
105-
'Accept': 'application/json'
106-
}
107-
});
108-
109-
let data = await response.json();
110-
111-
return data;
101+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
102+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
103+
return await $.post({
104+
url: '/makeCredentialOptions',
105+
type: 'POST',
106+
data: formData,
107+
processData: false,
108+
contentType: false,
109+
}, 'json');
112110
}
113111

114112

@@ -160,7 +158,7 @@ async function registerNewCredential(newCredential) {
160158
}
161159

162160
async function registerCredentialWithServer(formData) {
163-
let response = await fetch('/makeCredential', {
161+
let response = await fetch('/makeCredential', {
164162
method: 'POST', // or 'PUT'
165163
body: JSON.stringify(formData), // data can be `string` or {object}!
166164
headers: {

Demo/wwwroot/js/usernameless.login.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ async function handleSignInSubmit(event) {
1212
// send to server for registering
1313
let makeAssertionOptions;
1414
try {
15-
var res = await fetch('/assertionOptions', {
16-
method: 'POST', // or 'PUT'
17-
body: formData, // data can be `string` or {object}!
18-
headers: {
19-
'Accept': 'application/json'
20-
}
21-
});
22-
23-
makeAssertionOptions = await res.json();
15+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
16+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
17+
makeAssertionOptions = await $.post({
18+
url: '/assertionOptions',
19+
type: 'POST',
20+
data: formData,
21+
processData: false,
22+
contentType: false,
23+
}, 'json');
2424
} catch (e) {
2525
showErrorAlert("Request to server failed", e);
2626
}
@@ -99,7 +99,7 @@ async function verifyAssertionWithServer(assertedCredential) {
9999

100100
let response;
101101
try {
102-
let res = await fetch("/makeAssertion", {
102+
let res = await fetch("/makeAssertion", {
103103
method: 'POST', // or 'PUT'
104104
body: JSON.stringify(data), // data can be `string` or {object}!
105105
headers: {

Demo/wwwroot/js/usernameless.register.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,17 +98,15 @@ async function handleRegisterSubmit(event) {
9898
}
9999

100100
async function fetchMakeCredentialOptions(formData) {
101-
let response = await fetch('/makeCredentialOptions', {
102-
method: 'POST', // or 'PUT'
103-
body: formData, // data can be `string` or {object}!
104-
headers: {
105-
'Accept': 'application/json'
106-
}
107-
});
108-
109-
let data = await response.json();
110-
111-
return data;
101+
// use jquery ajax instead of fetch because of safari browser and platform authenticator
102+
// https://github.com/passwordless-lib/fido2-net-lib/issues/303
103+
return await $.post({
104+
url: '/makeCredentialOptions',
105+
type: 'POST',
106+
data: formData,
107+
processData: false,
108+
contentType: false,
109+
}, 'json');
112110
}
113111

114112

0 commit comments

Comments
 (0)