Skip to content
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

[Issue #2643] Initial auth #3492

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open

[Issue #2643] Initial auth #3492

wants to merge 10 commits into from

Conversation

acouch
Copy link
Collaborator

@acouch acouch commented Jan 10, 2025

Summary

Fixes #2643

Time to review: 30 mins

Changes proposed

doug-s-nava and others added 10 commits January 7, 2025 10:03
* adds route at /api/auth/callback to be hit by the flask API at the completion of the login flow
* adds jwt token parsing logic
* adds support for a "SESSION_SECRET" env var
* adds a User page for temporary testing
* adds a context provider and hook to allow client components to access up to date logged in user information
* adds a NextJS route to return user data decrypted from the session cookie passed up from the client
* makes some temporary updates to the feature flags table in order for that page
to act as a proof of concept for the functionality
* moves some feature flags and loading spinner code to a more suitable location.
Creates a Node route for logging out to log out a user, which
* calls the API logout endpoint
* removes client side cookie

Also adds fetch function to use to call the API logout route and a dummy logout button to use for testing
…em for client side use (#3374)

* rewrites the FeatureFlagManager and useFeatureFlag hook to allow syncing flags between server and client using cookies
* adds the `authOn` feature flag in frontend code and terraform
* refactors the `environments` setup a bit to more easily expose feature flags
* splits functionality that does not benefit from being held in the FeatureFlagsManager class into a helper file
* moves feature flag manager file into a nested directory
* updates to session management to allow for decrypting the login.gov JWT in order to pull out user email
* creation of a logged in state for the header
## Summary
Fixes #2962

### Time to review: __15 mins__

## Changes proposed

* Adds a modal for the login link
* Moves the env route handler to a redirect


#### Mobile

![image](https://github.com/user-attachments/assets/4d44f545-f1ce-419e-898d-dde3d859f55b)

#### Desktop

![image](https://github.com/user-attachments/assets/a34ead51-57f7-4c9b-a2e4-631f58e085f3)


### TODO

- [x] verify it is accessible
- [x] add tests
- [x] look over again
* fix bug where mobile login dropdown appeared on top of mobile menu
* improve spacing on mobile login dropdown
* the callback route redirects to the home page on success, or an unauthorized page if no token is present or error page in error cases
* creates error and unauthorized pages
* adds middleware to implement the correct status codes on these redirects
@acouch acouch marked this pull request as ready for review January 10, 2025 21:35
@doug-s-nava
Copy link
Collaborator

does this need a review? is there new stuff in here, or has all of this already been reviewed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SGG/Login.Gov Integration (Next.js <-> API)
2 participants