-
Notifications
You must be signed in to change notification settings - Fork 44
Add authenticationMethod to sealed session #1417
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
Conversation
Greptile OverviewGreptile SummaryAdded Changes:
The implementation is consistent across all authentication and session refresh flows. Confidence Score: 5/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant Client
participant UserManagement
participant CookieSession
participant IronSessionProvider
participant AuthResponse
Note over Client,AuthResponse: Authentication Flow with authenticationMethod
Client->>UserManagement: authenticateWithCode/Password/etc(options)
UserManagement->>AuthResponse: POST /user_management/authenticate
AuthResponse-->>UserManagement: AuthenticationResponse (with authenticationMethod)
alt sealSession is true
UserManagement->>UserManagement: sealSessionDataFromAuthenticationResponse()
Note over UserManagement: Creates SessionCookieData with:<br/>- accessToken<br/>- refreshToken<br/>- user<br/>- authenticationMethod<br/>- impersonator<br/>- organizationId
UserManagement->>IronSessionProvider: sealData(sessionData)
IronSessionProvider-->>UserManagement: sealedSession string
end
UserManagement-->>Client: AuthenticationResponse + sealedSession
Note over Client,AuthResponse: Session Cookie Authentication Flow
Client->>UserManagement: authenticateWithSessionCookie(sessionData)
UserManagement->>IronSessionProvider: unsealData(sessionData)
IronSessionProvider-->>UserManagement: SessionCookieData (with authenticationMethod)
UserManagement->>UserManagement: isValidJwt(accessToken)
UserManagement-->>Client: AuthenticateWithSessionCookieSuccessResponse<br/>(includes authenticationMethod)
Note over Client,AuthResponse: Session Refresh Flow
Client->>CookieSession: refresh(options)
CookieSession->>IronSessionProvider: unsealData(sessionData)
IronSessionProvider-->>CookieSession: SessionCookieData
CookieSession->>UserManagement: authenticateWithRefreshToken()
UserManagement->>AuthResponse: POST /user_management/authenticate
AuthResponse-->>UserManagement: AuthenticationResponse (with authenticationMethod)
UserManagement->>IronSessionProvider: sealData(sessionData with authenticationMethod)
IronSessionProvider-->>CookieSession: new sealedSession
CookieSession-->>Client: RefreshSessionResponse<br/>(includes authenticationMethod)
|
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.
3 files reviewed, no comments
## Description Includes: - #1417 - #1420 ## Documentation Does this require changes to the WorkOS Docs? E.g. the [API Reference](https://workos.com/docs/reference) or code snippets need updates. ``` [ ] Yes ``` If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required. <!-- av pr metadata This information is embedded by the av CLI when creating PRs to track the status of stacks when using Aviator. Please do not delete or edit this section of the PR. ``` {"parent":"main","parentHead":"","trunk":"main"} ``` -->
Description
Documentation
Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.
If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.