Skip to content

Commit 5af0198

Browse files
committed
fix: handle error redirection for partial permission consent
1 parent 7440086 commit 5af0198

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

backend/src/controllers/mining.controller.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ export default function initializeMiningController(
6464
const provider = req.params.provider as OAuthMiningSourceProvider;
6565
const { redirect } = req.body;
6666

67-
console.log(redirect);
68-
6967
const stateObj = JSON.stringify({
7068
userId: user.id,
7169
afterCallbackRedirect: redirect ?? '/'
@@ -82,6 +80,7 @@ export default function initializeMiningController(
8280
async createProviderMiningSourceCallback(req: Request, res: Response) {
8381
const { code, state } = req.query as { code: string; state: string };
8482
const provider = req.params.provider as OAuthMiningSourceProvider;
83+
let redirect = '/';
8584
try {
8685
const {
8786
userId,
@@ -92,6 +91,8 @@ export default function initializeMiningController(
9291
} = JSON.parse(
9392
Buffer.from(state as string, 'base64').toString('utf-8')
9493
);
94+
95+
redirect = afterCallbackRedirect;
9596
const exchangedTokens = await exchangeForToken(code, provider);
9697

9798
await miningSources.upsert({
@@ -103,15 +104,15 @@ export default function initializeMiningController(
103104
},
104105
type: provider
105106
});
106-
const redirect = afterCallbackRedirect.startsWith('/mine')
107+
redirect = afterCallbackRedirect.startsWith('/mine')
107108
? `${afterCallbackRedirect}?source=${exchangedTokens.email}`
108109
: afterCallbackRedirect;
109110
res.redirect(301, `${ENV.FRONTEND_HOST}${redirect}`);
110111
} catch (error) {
111112
logger.error(error);
112113
res.redirect(
113114
301,
114-
`${ENV.FRONTEND_HOST}/callback?error=oauth-permissions&provider=${provider}&referrer=${state}&navigate_to=/mine`
115+
`${ENV.FRONTEND_HOST}/callback?error=oauth-permissions&provider=${provider}&referrer=${state}&navigate_to=${redirect}`
115116
);
116117
}
117118
},

frontend/src/pages/callback.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ onMounted(async () => {
5454
['oauth-permissions', 'access_denied'].includes(error ?? '') &&
5555
provider
5656
) {
57-
useMiningConsentSidebar().show(provider as MiningSourceType);
57+
useMiningConsentSidebar().show(provider as MiningSourceType, undefined, navigateToPage ?? undefined);
5858
} else {
5959
showOAuthErrorNotification();
6060
}

0 commit comments

Comments
 (0)