forum.beginner.center/:1 Contenuto misto: la pagina su 'https://forum.beginner.center/' è stata caricata tramite HTTPS, ma ha richiesto un carattere non sicuro 'http://forum.beginner.center/fonts/JetBrainsMono-Regular.woff2?v=0.0.19'. Questa richiesta è stata bloccata; il contenuto deve essere servito tramite HTTPS.
forum.beginner.center/:1 Contenuto misto: la pagina su 'https://forum.beginner.center/' è stata caricata tramite HTTPS, ma ha richiesto un carattere non sicuro 'http://forum.beginner.center/fonts/JetBrainsMono-Bold.woff2?v=0.0.19'. Questa richiesta è stata bloccata; il contenuto deve essere servito tramite HTTPS.
app.js:270 ℹ️ Discourse v3.5.0.beta9-dev — https://github.com/discourse/discourse/commits/33dfd7dba9 — Ember v5.12.0
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
[Solo segnalazione] Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una sorgente consentita di script nella seguente direttiva della Policy di sicurezza del contenuto: \"script-src 'nonce-4YvvTZffYuqGaENC8DnQ7yeNg' 'strict-dynamic'\".
analytics.eu.umami.is/script.js:1 Risorsa non caricata: net::ERR_CONNECTION_CLOSED
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
Tracking Prevention ha bloccato l'accesso allo storage per <URL>.
deprecated.js:62 Avviso di deprecazione: l'impostazione della proprietà timezone dell'oggetto utente è deprecata. Utilizzare invece l'oggetto user_option [deprecato da Discourse 2.9.0.beta12] [rimozione in Discourse 3.0.0.beta1] [id deprecazione: discourse.user.userOptions]
a @ deprecated.js:62
security:1 L'elaborazione di Autofocus è stata bloccata perché un documento ha già un elemento attivo.
completion_list.html:14 GET chrome-extension://mfbcdcnpokpoajjciilocoachedjkima/heuristicsRedefinitions.js net::ERR_FILE_NOT_FOUND
completion_list.html:13 GET chrome-extension://mfbcdcnpokpoajjciilocoachedjkima/extensionState.js net::ERR_FILE_NOT_FOUND
completion_list.html:12 GET chrome-extension://mfbcdcnpokpoajjciilocoachedjkima/utils.js net::ERR_FILE_NOT_FOUND
ajax.js:188 POST https://forum.beginner.center/u/register_passkey.json 401 (Non autorizzato)
send @ jquery.js:9940
ajax @ jquery.js:9521
o @ ajax.js:188
(anonimo) @ rsvp-DaQAFb0W.js:435
e @ rsvp-DaQAFb0W.js:451
A @ ajax.js:201
registerPasskey @ user.js:650
createPasskey @ user-passkeys.gjs:86
await in createPasskey
didConfirm @ user-passkeys.gjs:140
didConfirmWrapped @ dialog.js:134
_join @ index.js:788
join @ index.js:605
p @ index.js:152
(anonimo) @ index.js:250
submit @ confirm-session.gjs:84
await in submit
(anonimo) @ d-button.gjs:138
invoke @ index.js:264
flush @ index.js:180
flush @ index.js:334
_end @ index.js:762
end @ index.js:565
_runExpiredTimers @ index.js:869
setTimeout
setTimeout @ index.js:39
_installTimerTimeout @ index.js:912
_later @ index.js:823
later @ index.js:652
T @ index.js:562
_triggerAction @ d-button.gjs:135
click @ d-button.gjs:93
user-passkeys.gjs:104 {jqXHR: {…}, textStatus: 'error', errorThrown: ''}errorThrown: \"\"jqXHR: abort: ƒ (e)always: ƒ ()catch: ƒ (e)done: ƒ ()fail: ƒ ()getAllResponseHeaders: ƒ ()getResponseHeader: ƒ (e)jqTextStatus: \"error\"overrideMimeType: ƒ (e)pipe: ƒ ()progress: ƒ ()promise: ƒ (e)readyState: 4requestedUrl: \"/u/register_passkey.json\"responseJSON: {errors: Array(1)}responseText: \"{\\\"errors\\\":[\\\"The origin of the authentication request does not match the server origin.\\\"]}\"setRequestHeader: ƒ (e,t)state: ƒ ()status: 401statusCode: ƒ (e)statusText: \"error\"then: ƒ (e,i,n)[[Prototype]]: ObjecttextStatus: \"error\"[[Prototype]]: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()__proto__: (...)get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
createPasskey @ user-passkeys.gjs:104
await in createPasskey
didConfirm @ user-passkeys.gjs:140
didConfirmWrapped @ dialog.js:134
_join @ index.js:788
join @ index.js:605
p @ index.js:152
(anonimo) @ index.js:250
submit @ confirm-session.gjs:84
await in submit
(anonimo) @ d-button.gjs:138
invoke @ index.js:264
flush @ index.js:180
flush @ index.js:334
_end @ index.js:762
end @ index.js:565
_runExpiredTimers @ index.js:869
setTimeout
setTimeout @ index.js:39
_installTimerTimeout @ index.js:912
_later @ index.js:823
later @ index.js:652
T @ index.js:562
_triggerAction @ d-button.gjs:135
click @ d-button.gjs:93
Puoi assicurarti che il tuo sito sia configurato per servire tutto tramite https? La verifica della sfida della passkey richiede che tutte le richieste passino attraverso https. Inoltre, il dominio tra browser e server deve corrispondere esattamente. Se c’è una discrepanza da qualche parte, la verifica fallirà.
Abbiamo un’impostazione per questo, force_https, puoi provare quella, potrebbe aiutare (anche se fai attenzione, potrebbe anche bloccarti se il server non è configurato correttamente).
Mi scuso per il ritardo. Il problema qui è effettivamente correlato al tuo proxy. Non posso dire esattamente quale sia, ma uno tra il nome di dominio, il protocollo (http o https) e la porta sta creando problemi.
Le passkey verificano che il frontend e il backend vengano eseguiti sullo stesso dominio, protocollo e porta. Se uno di questi non corrisponde, otterrai un errore come questo.
Nel Rails CLI, puoi provare questo:
DiscourseWebauthn.origin
e confrontarlo con l’URL che utilizzi per accedere al sito nel browser? I due dovrebbero corrispondere.
Per quanto ne capisco lo standard Webauthn per Passkey, si basa su una connessione sicura tra la Relying Party (Discourse) e il Client (Browser o dispositivo mobile) e l’Authenticator (ad es. uno yubikey). Pertanto abbiamo bisogno di https per la comunicazione proveniente dall’applicazione Discourse. Forzare https potrebbe essere la soluzione, ma anche solo un header per proxy_set_header X-Forwarded-Proto https;
potrebbe essere sufficiente. Se forzare https aiuta (cosa comunque raccomandata), tutto va bene.