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