this refresh is going to be the death of me
This commit is contained in:
parent
b7e03d377b
commit
75b7b1d2f8
1 changed files with 11 additions and 6 deletions
|
@ -556,15 +556,20 @@ export async function GainTokens() {
|
||||||
|
|
||||||
// Refreshing tokens is an integral part of auth.
|
// Refreshing tokens is an integral part of auth.
|
||||||
export async function RefreshTokens() {
|
export async function RefreshTokens() {
|
||||||
let WellKnown = GetPDSWellKnown();
|
let WellKnown = await GetPDSWellKnown().then((response) => response.json());
|
||||||
let body = await WellKnown.then((response) => response.json());
|
// Fake PAR request to get the nonce.
|
||||||
let header = await WellKnown.then((response) => response.headers.get("dpop-nonce"));
|
let State = crypto.randomUUID();
|
||||||
await HandleError(body, header);
|
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.
|
// 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
|
// Token refresh
|
||||||
let Var = await localStorage.getItem(Variables.BlueskyRefreshToken);
|
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
|
// Save the tokens and be done
|
||||||
await localStorage.setItem(Variables.BlueskyAccessToken, Auth.access_token);
|
await localStorage.setItem(Variables.BlueskyAccessToken, Auth.access_token);
|
||||||
await localStorage.setItem(Variables.BlueskyRefreshToken, Auth.refresh_token);
|
await localStorage.setItem(Variables.BlueskyRefreshToken, Auth.refresh_token);
|
||||||
|
|
Loading…
Add table
Reference in a new issue