-
-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(auth): Add Google OAuth #156
Conversation
PR Description updated to latest commit (572d369) |
PR Review(Review updated until commit 22acbfe)
Code feedback:
✨ Review tool usage guide:Overview:
With a configuration file, use the following template:
See the review usage page for a comprehensive guide on using this tool. |
PR Code Suggestions
✨ Improve tool usage guide:Overview:
With a configuration file, use the following template:
See the improve usage page for a more comprehensive guide on using this tool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. btw what is istanbul ignore next
?
Folks I'll just review this in an hour or so |
@risv1 Do you want to update the doc's as well? |
Not really, you can go ahead with it :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall neat work!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Completely missed this. Please update the import path from absolute to relative in this file:
apps/api/src/auth/auth.module.ts
/review |
Persistent review updated to latest commit fecee8b |
My bad, give me a second |
Quality Gate passedIssues Measures |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #156 +/- ##
============================================
+ Coverage 62.20% 93.92% +31.71%
============================================
Files 76 85 +9
Lines 1503 1614 +111
Branches 260 255 -5
============================================
+ Hits 935 1516 +581
+ Misses 568 98 -470
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Awesome bro! That looks done. I'll merge it whenever the configs are dealt with. EDIT: In the meantime, if you want you can work on the code coevrage |
Sorry quick clarification, modifying the strategy spec files to check for returning a user, and not just for existence of the function should be enough right? |
I don't think you can check the returning of a user since that's just oauth flow. I would recommend you to do unit tests on this, maybe mock the provider to return a user every time it's called. Additionally, you should check the codecov coverage report that was generated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. 🚀
Persistent review updated to latest commit 22acbfe |
PR Code Suggestions
✨ Improve tool usage guide:Overview:
With a configuration file, use the following template:
See the improve usage page for a more comprehensive guide on using this tool. |
## [1.3.0](v1.2.0...v1.3.0) (2024-05-12) ### 🚀 Features * Add approval support ([#158](#158)) ([e09ae60](e09ae60)) * **api:** Add configuration live update support ([#181](#181)) ([f7d6684](f7d6684)) * **api:** Add feature to export data of a workspace ([#152](#152)) ([46833aa](46833aa)) * **api:** Add Integration support ([#203](#203)) ([f1ae87e](f1ae87e)) * **api:** Add note to [secure] and variable ([#151](#151)) ([2e62351](2e62351)) * **api:** Add OAuth redirection and polished authentication ([#212](#212)) ([d2968bc](d2968bc)) * **api:** Add support for storing and managing variables ([#149](#149)) ([963a8ae](963a8ae)) * **api:** Added GitLab OAuth ([#188](#188)) ([4d3bbe4](4d3bbe4)) * **api:** Added validation for reason field ([#190](#190)) ([90b8ff2](90b8ff2)) * **api:** Create default workspace on user's creation ([#182](#182)) ([3dc0c4c](3dc0c4c)) * **api:** Reading `port` Dynamically ([#170](#170)) ([fd46e3e](fd46e3e)) * **auth:** Add Google OAuth ([#156](#156)) ([cf387ea](cf387ea)) * **web:** Added waitlist ([#168](#168)) ([1084c77](1084c77)) * **web:** Landing revamp ([#165](#165)) ([0bc723b](0bc723b)) ### 🐛 Bug Fixes * **web:** alignment issue in “Collaboration made easy” section ([#178](#178)) ([df5ca75](df5ca75)) * **workspace:** delete duplicate tailwind config ([99d922a](99d922a)) ### 📚 Documentation * add contributor list ([f37569a](f37569a)) * Add integration docs ([#204](#204)) ([406ddb7](406ddb7)) * Added integration docs to gitbook summary ([ab37530](ab37530)) * **api:** Add swagger docs of API key controller ([#167](#167)) ([2910476](2910476)) * **api:** Add swagger docs of User Controller ([#166](#166)) ([fd59522](fd59522)) * fix typo in environment-variables.md ([#163](#163)) ([48294c9](48294c9)) * Remove supabase from docs ([#169](#169)) ([eddbce8](eddbce8)) * **setup:** replace NX with Turbo in setup instructions ([#175](#175)) ([af8a460](af8a460)) * Update README.md ([b59f16b](b59f16b)) * Update running-the-api.md ([177dbbf](177dbbf)) * Update running-the-api.md ([#193](#193)) ([3d5bcac](3d5bcac)) ### 🔧 Miscellaneous Chores * Added lockfile ([60a3b9b](60a3b9b)) * Added lockfile ([6bb512c](6bb512c)) * **api:** Added type inference and runtime validation to `process.env` ([#200](#200)) ([249e07d](249e07d)) * **api:** Fixed prisma script env errors ([#209](#209)) ([8762354](8762354)) * **API:** Refactor authority check functions in API ([#189](#189)) ([e9d710d](e9d710d)) * **api:** Refactor user e2e tests ([b38d45a](b38d45a)) * **ci:** Disabled api stage release ([97877c4](97877c4)) * **ci:** Update stage deployment config ([868a6a1](868a6a1)) * **codecov:** update api-e2e project coverage ([1e90d7e](1e90d7e)) * **dockerfile:** Fixed web dockerfile ([6134bb2](6134bb2)) * **docker:** Optimized web Dockerfile to reduct image size ([#173](#173)) ([444286a](444286a)) * **release:** Downgraded package version ([c173fee](c173fee)) * **release:** Fix failing release ([#213](#213)) ([40f64f3](40f64f3)) * **release:** Install pnpm ([1081bea](1081bea)) * **release:** Updated release commit ([b8958e7](b8958e7)) * **release:** Updated release commit ([e270eb8](e270eb8)) * Update deprecated husky Install command ([#202](#202)) ([e61102c](e61102c)) * Upgrade @million/lint from 0.0.66 to 0.0.73 ([#172](#172)) ([dd43ed9](dd43ed9)) * **web:** Updated fly memory config ([4debc66](4debc66)) ### 🔨 Code Refactoring * **api:** Made events central to workspace ([#159](#159)) ([9bc00ae](9bc00ae)) * **api:** Migrated to cookie based authentication ([#206](#206)) ([ad6911f](ad6911f)) * **monorepo:** Migrate from nx to turbo ([#153](#153)) ([88b4b00](88b4b00))
🎉 This PR is included in version 1.3.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
User description
Description
Implemented Google OAuth to enable users to login using their Google accounts.
Fixes #4
Dependencies
Mentions
Developer's checklist
If changes are made in the code:
Documentation Update
Type
enhancement, documentation
Description
.env.example
.passport-google-oauth20
in dependencies.Changes walkthrough
5 files
auth.module.ts
Integrate Google OAuth Strategy in Auth Module
apps/api/src/auth/auth.module.ts
GoogleOAuthStrategyFactory
andGoogleStrategy
to the Authmodule.
auth.controller.ts
Add Google OAuth Endpoints in AuthController
apps/api/src/auth/controller/auth.controller.ts
GoogleOAuthStrategyFactory
into AuthController.auth.service.ts
Implement Google OAuth Handling in AuthService
apps/api/src/auth/service/auth.service.ts
handleGoogleOAuth
method to process Google OAuth logins.google-strategy.factory.ts
Implement GoogleOAuthStrategyFactory
apps/api/src/config/factory/google/google-strategy.factory.ts
GoogleOAuthStrategyFactory
to manage Google OAuth strategycreation.
accordingly.
google.strategy.ts
Implement GoogleStrategy for OAuth
apps/api/src/config/oauth-strategy/google/google.strategy.ts
GoogleStrategy
for Google OAuth.3 files
auth.controller.spec.ts
Update AuthController Tests for Google OAuth
apps/api/src/auth/controller/auth.controller.spec.ts
GoogleOAuthStrategyFactory
in the AuthController tests setup.google-strategy.factory.spec.ts
Test GoogleOAuthStrategyFactory Functionality
apps/api/src/config/factory/google/google-strategy.factory.spec.ts
GoogleOAuthStrategyFactory
, including OAuth enablementand strategy creation.
google.strategy.spec.ts
Test GoogleStrategy Implementation
apps/api/src/config/oauth-strategy/google/google.strategy.spec.ts
GoogleStrategy
.1 files
.env.example
Add Google OAuth Environment Variables
.env.example
1 files
package.json
Add passport-google-oauth20 Dependency
apps/api/package.json
passport-google-oauth20
dependency.