this refresh is going to be the death of me

This commit is contained in:
CatAClock 2025-06-01 13:50:58 -07:00
parent b7e03d377b
commit 75b7b1d2f8

View file

@ -556,15 +556,20 @@ export async function GainTokens() {
// Refreshing tokens is an integral part of auth.
export async function RefreshTokens() {
let WellKnown = GetPDSWellKnown();
let body = await WellKnown.then((response) => response.json());
let header = await WellKnown.then((response) => response.headers.get("dpop-nonce"));
await HandleError(body, header);
let WellKnown = await GetPDSWellKnown().then((response) => response.json());
// Fake PAR request to get the nonce.
let State = crypto.randomUUID();
let PKCEverifier = await CreatePKCECodeVerifier();
let PKCEchallenge = await CreatePKCECodeChallenge(PKCEverifier);
let PAR = PARrequest(WellKnown.pushed_authorization_request_endpoint, State, PKCEchallenge);
let nonce = await PAR.then((response) => response.headers.get("dpop-nonce"));
// Save nonce
await localStorage.setItem(Variables.BlueskyNonce, nonce);
// Create varaibles, be aware of waits because of internet.
let DPoP = await ClientDPoPToken("POST", body.token_endpoint);
let DPoP = await ClientDPoPToken("POST", WellKnown.token_endpoint);
// Token refresh
let Var = await localStorage.getItem(Variables.BlueskyRefreshToken);
let Auth = await ReauthRequest(body.token_endpoint, Var, DPoP).then((response) => response.json());
let Auth = await ReauthRequest(WellKnown.token_endpoint, Var, DPoP).then((response) => response.json());
// Save the tokens and be done
await localStorage.setItem(Variables.BlueskyAccessToken, Auth.access_token);
await localStorage.setItem(Variables.BlueskyRefreshToken, Auth.refresh_token);