Skip to content

Commit 1df08c7

Browse files
committed
fix: Add redirect for OAuth from /login (#1163)
This allows for a complete sign-up flow: 1. coder login https://dev.coder.com 2. Navigates to /cli-auth 3. Redirects to /login?redirect=%2Fcli-auth 4. User signs in with GitHub 5. User is redirected back to /cli-auth
1 parent a2605d0 commit 1df08c7

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

site/src/AppRouter.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,14 @@ export const AppRouter: React.FC = () => (
3434

3535
<Route path="login" element={<LoginPage />} />
3636
<Route path="healthz" element={<HealthzPage />} />
37-
<Route path="cli-auth" element={<CliAuthenticationPage />} />
37+
<Route
38+
path="cli-auth"
39+
element={
40+
<RequireAuth>
41+
<CliAuthenticationPage />
42+
</RequireAuth>
43+
}
44+
/>
3845

3946
<Route path="templates">
4047
<Route

site/src/components/SignInForm/SignInForm.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ const useStyles = makeStyles((theme) => ({
5353

5454
export interface SignInFormProps {
5555
isLoading: boolean
56+
redirectTo: string
5657
authErrorMessage?: string
5758
methodsErrorMessage?: string
5859
authMethods?: AuthMethods
@@ -61,6 +62,7 @@ export interface SignInFormProps {
6162

6263
export const SignInForm: React.FC<SignInFormProps> = ({
6364
authMethods,
65+
redirectTo,
6466
isLoading,
6567
authErrorMessage,
6668
methodsErrorMessage,
@@ -113,7 +115,7 @@ export const SignInForm: React.FC<SignInFormProps> = ({
113115
</form>
114116
{authMethods?.github && (
115117
<div className={styles.submitBtn}>
116-
<Link href="/api/v2/users/oauth2/github/callback">
118+
<Link href={`/api/v2/users/oauth2/github/callback?redirect=${encodeURIComponent(redirectTo)}`}>
117119
<Button color="primary" disabled={isLoading} fullWidth type="submit" variant="contained">
118120
{Language.githubSignIn}
119121
</Button>

site/src/pages/LoginPage/LoginPage.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export const LoginPage: React.FC = () => {
5252
<div className={styles.container}>
5353
<SignInForm
5454
authMethods={authState.context.methods}
55+
redirectTo={redirectTo}
5556
isLoading={isLoading}
5657
authErrorMessage={authErrorMessage}
5758
methodsErrorMessage={getMethodsError}

0 commit comments

Comments
 (0)