[JITERA] Implement Google Sign-In Feature
Overview
This pull request implements the Google Sign-In feature, allowing users to authenticate using their Google accounts. The implementation includes the necessary backend and frontend changes to support OAuth integration, user account provisioning, and security measures.
Changes Made
- Requirements Review: Reviewed the Google Sign-In functional requirements document to ensure all scenarios, edge cases, and compliance aspects are addressed.
- Codebase Investigation: Analyzed the existing authentication codebase to identify integration points for Google OAuth functionality.
- OAuth Integration: Implemented Google OAuth integration in the authentication service, including the OAuth dance, token exchange, and user account provisioning/merging.
-
Data Model Updates: Investigated existing user attribute models and added Google-specific attributes such as
google_uid,avatar_url, and the last Google login timestamp. - Security Measures: Implemented edge case handling and security measures, including consent denial, token signature verification, CSRF protection, and compliance with security requirements.
- Frontend Changes: Reviewed the frontend codebase to identify where to add the "Continue with Google" button and handle the OAuth flow.
- UI Component Addition: Added a "Continue with Google" button to the login page, ensuring it meets accessibility standards and correctly initiates the OAuth flow.
Next Steps
- Develop unit tests for the Google Sign-In functionality.
- Update or create documentation for the Google Sign-In feature.