From 19263dd46e0fba5fa7fd12f223f6fd80c6db3870 Mon Sep 17 00:00:00 2001 From: sevichecc <91365763+Sevichecc@users.noreply.github.com> Date: Sun, 16 Apr 2023 01:34:52 +0800 Subject: [PATCH] revert: refreshToken & requestAccessToken function --- src/oauth.ts | 48 +++++++++++++++++++++++------------------------- src/types.ts | 2 +- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/oauth.ts b/src/oauth.ts index f316cab..9c71025 100644 --- a/src/oauth.ts +++ b/src/oauth.ts @@ -10,33 +10,37 @@ export const client = new OAuth.PKCEClient({ description: "Connect to your Akkoma / Pleroma acount", }); -const requestToken = async ( +const requestAccessToken = async ( clientId: string, clientSecret: string, - grantType: string, - authRequest?: OAuth.AuthorizationRequest, - authCode?: string, - refreshToken?: string + authRequest: OAuth.AuthorizationRequest, + authCode: string ): Promise => { const params = new URLSearchParams(); params.append("client_id", clientId); params.append("client_secret", clientSecret); - params.append("grant_type", grantType); + params.append("code", authCode); + params.append("code_verifier", authRequest.codeVerifier); + params.append("grant_type", "authorization_code"); + params.append("redirect_uri", authRequest.redirectURI); - if (grantType === "authorization_code") { - params.append("code", authCode!); - params.append("code_verifier", authRequest!.codeVerifier); - params.append("redirect_uri", authRequest!.redirectURI); - } else { - params.append("refresh_token", refreshToken!); - } + return await apiServer.fetchToken(params, "fetch tokens error:"); +}; - const tokenResponse = await apiServer.fetchToken(params, `Error while requesting ${grantType} tokens:`); +const refreshToken = async ( + clientId: string, + clientSecret: string, + refreshToken: string +): Promise => { + const params = new URLSearchParams(); + params.append("client_id", clientId); + params.append("client_secret", clientSecret); + params.append("refresh_token", refreshToken); + params.append("grant_type", "refresh_token"); - if (grantType === "refresh_token") { - tokenResponse.refresh_token = tokenResponse.refresh_token ?? refreshToken; - } + const tokenResponse = await apiServer.fetchToken(params, "refresh tokens error:"); + tokenResponse.refresh_token = tokenResponse.refresh_token ?? refreshToken; return tokenResponse; }; @@ -48,9 +52,7 @@ export const authorize = async (): Promise => { if (tokenSet.refreshToken && tokenSet.isExpired()) { LocalStorage.clear(); const { client_id, client_secret } = await apiServer.createApp(); - await client.setTokens( - await requestToken(client_id, client_secret, "refresh_token", undefined, undefined, tokenSet.refreshToken) - ); + await client.setTokens(await refreshToken(client_id, client_secret, tokenSet.refreshToken)); } return; } @@ -63,13 +65,9 @@ export const authorize = async (): Promise => { }); const { authorizationCode } = await client.authorize(authRequest); - await client.setTokens( - await requestToken(client_id, client_secret, "authorization_code", authRequest, authorizationCode) - ); + await client.setTokens(await requestAccessToken(client_id, client_secret, authRequest, authorizationCode)); const { fqn, avatar_static } = await apiServer.fetchAccountInfo(); await LocalStorage.setItem("account-fqn", fqn); await LocalStorage.setItem("account-avator", avatar_static); }; - -export default { authorize }; diff --git a/src/types.ts b/src/types.ts index 6daa312..bdd2240 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,4 @@ -import type { Icon, LaunchProps } from "@raycast/api"; +import type { Icon } from "@raycast/api"; export type VisibilityScope = "public" | "unlisted" | "direct" | "private" | "local";