@@ -13,7 +13,7 @@ export const generateAuthUrl = async (
13
13
domain : string ,
14
14
type : IssuerRouteTypes = IssuerRouteTypes . login ,
15
15
options : LoginOptions ,
16
- ) : Promise < { url : URL ; state : string ; nonce : string } > => {
16
+ ) : Promise < { url : URL ; state : string ; nonce : string ; codeChallenge : string } > => {
17
17
const authUrl = new URL ( `${ domain } /oauth2/auth` ) ;
18
18
const activeStorage = getActiveStorage ( ) ;
19
19
const searchParams : Record < string , string > = {
@@ -59,18 +59,19 @@ export const generateAuthUrl = async (
59
59
url : authUrl ,
60
60
state : searchParams [ "state" ] ,
61
61
nonce : searchParams [ "nonce" ] ,
62
+ codeChallenge : searchParams [ "code_challenge" ] ,
62
63
} ;
63
64
} ;
64
65
65
- async function generatePKCEPair ( ) : Promise < {
66
+ export async function generatePKCEPair ( ) : Promise < {
66
67
codeVerifier : string ;
67
68
codeChallenge : string ;
68
69
} > {
69
- const codeVerifier = generateRandomString ( 43 ) ;
70
+ const codeVerifier = generateRandomString ( 52 ) ;
70
71
const data = new TextEncoder ( ) . encode ( codeVerifier ) ;
71
72
const hashed = await crypto . subtle . digest ( "SHA-256" , data ) ;
72
- const hashArray = Array . from ( new Uint8Array ( hashed ) ) ;
73
- const hashString = hashArray . map ( ( b ) => String . fromCharCode ( b ) ) . join ( "" ) ;
74
- const codeChallenge = base64UrlEncode ( hashString ) ;
73
+ // const hashArray = Array.from(new Uint8Array(hashed));
74
+ // const hashString = hashArray.map((b) => String.fromCharCode(b)).join("");
75
+ const codeChallenge = base64UrlEncode ( hashed ) ;
75
76
return { codeVerifier, codeChallenge } ;
76
77
}
0 commit comments