mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
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
This commit is contained in:
@ -34,7 +34,14 @@ export const AppRouter: React.FC = () => (
|
|||||||
|
|
||||||
<Route path="login" element={<LoginPage />} />
|
<Route path="login" element={<LoginPage />} />
|
||||||
<Route path="healthz" element={<HealthzPage />} />
|
<Route path="healthz" element={<HealthzPage />} />
|
||||||
<Route path="cli-auth" element={<CliAuthenticationPage />} />
|
<Route
|
||||||
|
path="cli-auth"
|
||||||
|
element={
|
||||||
|
<RequireAuth>
|
||||||
|
<CliAuthenticationPage />
|
||||||
|
</RequireAuth>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
|
||||||
<Route path="templates">
|
<Route path="templates">
|
||||||
<Route
|
<Route
|
||||||
|
@ -53,6 +53,7 @@ const useStyles = makeStyles((theme) => ({
|
|||||||
|
|
||||||
export interface SignInFormProps {
|
export interface SignInFormProps {
|
||||||
isLoading: boolean
|
isLoading: boolean
|
||||||
|
redirectTo: string
|
||||||
authErrorMessage?: string
|
authErrorMessage?: string
|
||||||
methodsErrorMessage?: string
|
methodsErrorMessage?: string
|
||||||
authMethods?: AuthMethods
|
authMethods?: AuthMethods
|
||||||
@ -61,6 +62,7 @@ export interface SignInFormProps {
|
|||||||
|
|
||||||
export const SignInForm: React.FC<SignInFormProps> = ({
|
export const SignInForm: React.FC<SignInFormProps> = ({
|
||||||
authMethods,
|
authMethods,
|
||||||
|
redirectTo,
|
||||||
isLoading,
|
isLoading,
|
||||||
authErrorMessage,
|
authErrorMessage,
|
||||||
methodsErrorMessage,
|
methodsErrorMessage,
|
||||||
@ -113,7 +115,7 @@ export const SignInForm: React.FC<SignInFormProps> = ({
|
|||||||
</form>
|
</form>
|
||||||
{authMethods?.github && (
|
{authMethods?.github && (
|
||||||
<div className={styles.submitBtn}>
|
<div className={styles.submitBtn}>
|
||||||
<Link href="/api/v2/users/oauth2/github/callback">
|
<Link href={`/api/v2/users/oauth2/github/callback?redirect=${encodeURIComponent(redirectTo)}`}>
|
||||||
<Button color="primary" disabled={isLoading} fullWidth type="submit" variant="contained">
|
<Button color="primary" disabled={isLoading} fullWidth type="submit" variant="contained">
|
||||||
{Language.githubSignIn}
|
{Language.githubSignIn}
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -52,6 +52,7 @@ export const LoginPage: React.FC = () => {
|
|||||||
<div className={styles.container}>
|
<div className={styles.container}>
|
||||||
<SignInForm
|
<SignInForm
|
||||||
authMethods={authState.context.methods}
|
authMethods={authState.context.methods}
|
||||||
|
redirectTo={redirectTo}
|
||||||
isLoading={isLoading}
|
isLoading={isLoading}
|
||||||
authErrorMessage={authErrorMessage}
|
authErrorMessage={authErrorMessage}
|
||||||
methodsErrorMessage={getMethodsError}
|
methodsErrorMessage={getMethodsError}
|
||||||
|
Reference in New Issue
Block a user