Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
F
finwise-miniapp-fe
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • ThinhNC
  • finwise-miniapp-fe
  • Merge Requests
  • !1

Merged
Opened Aug 07, 2026 by ThinhNC@ThinhNC
  • Report abuse
Report abuse

feat(fe): implement authentication and user profile management

Description

Implement the Authentication & User Profile flow on the frontend application, adhering to the Claymorphism design guidelines and integrating seamlessly with the backend APIs.

Key Changes

  • Dependencies: Added axios, zustand, @tanstack/react-query, zod, react-hook-form, and @hookform/resolvers.
  • API Client & interceptor (src/lib/api-client.ts): Configured Axios with withCredentials: true and added response interceptors to handle token refresh automatically via HttpOnly cookies upon receiving a 401 Unauthorized response.
  • State Store (src/stores/auth-store.ts): Created a Zustand global store to handle user authentication state (user, isAuthenticated, and initialization flags).
  • Guarded Navigation: Developed AuthGuard (src/components/shared/AuthGuard.tsx) to protect private screens and updated src/components/layout.tsx to handle initial authentication checks on app boot.
  • Input Refactoring: Refactored the core Input component to support React.forwardRef for seamless validation registration with react-hook-form.
  • Claymorphism Screens: Created the following screens styled with dual-tone soft shadows and chunky borders:
    • Login / Register: Handles validation (such as enforcing @gmail.com validation).
    • Forgot / Reset Password: Requests and verifies UUID password reset tokens.
    • User Profile & Sessions: Handles updating personal details, changing passwords, and listing/revoking active devices sessions (via /auth/sessions).

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b feature/auth-user-profile origin/feature/auth-user-profile

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/develop
git merge --no-ff feature/auth-user-profile

Step 4. Push the result of the merge to GitLab

git push origin develop

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 0
  • Commits 1
  • Changes 16
Assignee
No assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: ThinhNC/finwise-miniapp-fe!1

Revert this merge request

This will create a new commit in order to revert the existing changes.

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.

Cherry-pick this merge request

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.