feat(auth): OIDC login UI + binding management + OIDC-only mode
- useAuthConfig fetches public /auth/config; LoginPage hides the password form when oidc_only and shows an SSO button when enabled. - /oidc/callback route applies the returned JWT (sign-in) or shows the link result; oidc_error surfaced on LoginPage. - UsersPage: hides password fields in OIDC-only mode; admin OIDC bind/unbind UI per user. Sidebar self-service "Link OIDC account" (non-OIDC_ONLY). - Dockerfile ARG/ENV HARBORFORGE_OIDC_ONLY. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -44,10 +44,16 @@ export function useAuth() {
|
||||
await fetchUser()
|
||||
}
|
||||
|
||||
const loginWithToken = async (token: string) => {
|
||||
localStorage.setItem('token', token)
|
||||
setState((s) => ({ ...s, token }))
|
||||
await fetchUser()
|
||||
}
|
||||
|
||||
const logout = () => {
|
||||
localStorage.removeItem('token')
|
||||
setState({ user: null, token: null, loading: false })
|
||||
}
|
||||
|
||||
return { ...state, login, logout }
|
||||
return { ...state, login, loginWithToken, logout }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user