From f4796559f67a4a7dd593868b51a28beaee28cd1e Mon Sep 17 00:00:00 2001 From: rfhf19 <rfhf19@inf.ufpr.br> Date: Sat, 24 Aug 2024 15:30:10 -0300 Subject: [PATCH] terminando --- src/app/entrar/components/LoginForm.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/app/entrar/components/LoginForm.js b/src/app/entrar/components/LoginForm.js index 6056ffef..9f204b9d 100644 --- a/src/app/entrar/components/LoginForm.js +++ b/src/app/entrar/components/LoginForm.js @@ -30,10 +30,12 @@ export default function LoginForm({ async function generateCodeVerifier() { var code_verifier = new Uint8Array(32); window.crypto.getRandomValues(code_verifier); - return code_verifier; + return base64URL(code_verifier); } - function generateCodeChallenge(code_verifier) { - return base64URL(window.crypto.subtle.digest("SHA-256", code_verifier)); + async function generateCodeChallenge(code_verifier) { + const encoder = new TextEncoder(); + const data = encoder.encode(code_verifier); + return base64URL(await window.crypto.subtle.digest("SHA-256", data)); } async function base64URL(buffer) { // use a FileReader to generate a base64 data URI: @@ -43,10 +45,10 @@ export default function LoginForm({ reader.readAsDataURL(new Blob([buffer])) }); // remove the `data:...;base64,` part from the start - return base64url.slice(base64url.indexOf(',') + 1); - } + return base64url.slice(base64url.indexOf(',') + 1).replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_'); + } const codeVerifier = await generateCodeVerifier(); - localStorage.setItem("govbr_code_verifier", await base64URL(codeVerifier)); + localStorage.setItem("govbr_code_verifier", codeVerifier); const params = { response_type: "code", client_id: "mecredhomologa.c3sl.ufpr.br", -- GitLab