-
Notifications
You must be signed in to change notification settings - Fork 0
Sequence Diagram of the Flow #2
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
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -106,3 +106,57 @@ npm run dev | |||||
| - PostgreSQL runs on port 5432 (internal) | ||||||
|
|
||||||
|
|
||||||
| ## Sequence Diagram of the Flow | ||||||
|
|
||||||
| ```mermaid | ||||||
|
|
||||||
| sequenceDiagram | ||||||
| participant Browser as Frontend #40;React#41; | ||||||
| participant YARP as BFF/YARP Proxy | ||||||
| participant TokenHandler as Token Handler Middleware | ||||||
| participant Cache as Hybrid Cache | ||||||
| participant Keycloak as Keycloak #40;IdP#41; | ||||||
|
||||||
| participant API as Backend API | ||||||
|
|
||||||
| Note over Browser,API: Initial Authentication Flow | ||||||
|
|
||||||
| Browser->>YARP: 1. Access protected resource | ||||||
| YARP->>TokenHandler: 2. Check authentication | ||||||
| TokenHandler->>Browser: 3. Redirect to /Account/Login | ||||||
| Browser->>YARP: 4. GET /Account/Login | ||||||
| YARP->>Keycloak: 5. OIDC Authorization Request | ||||||
| Keycloak->>Browser: 6. Login page | ||||||
| Browser->>Keycloak: 7. Submit credentials | ||||||
| Keycloak->>YARP: 8. Authorization code #40;callback#41; | ||||||
|
||||||
|
|
||||||
| Note over YARP,Keycloak: Token Exchange | ||||||
| YARP->>Keycloak: 9. Exchange code for tokens<br/>#40;OnAuthorizationCodeReceived#41; | ||||||
|
||||||
| Keycloak->>YARP: 10. Access + Refresh tokens | ||||||
|
|
||||||
| Note over YARP,Cache: Token Storage | ||||||
| YARP->>Cache: 11. Store tokens with session-id<br/>#40;OnTokenValidated#41; | ||||||
|
||||||
| YARP->>Browser: 12. Set session-id cookie #40;HttpOnly, Secure#41; | ||||||
|
||||||
| YARP->>Browser: 13. Redirect to original URL | ||||||
|
|
||||||
| Note over Browser,API: Subsequent API Calls | ||||||
|
|
||||||
| Browser->>YARP: 14. API request with session-id cookie | ||||||
| YARP->>TokenHandler: 15. AuthenticationHeaderSubstitutionMiddleware | ||||||
| TokenHandler->>Cache: 16. Retrieve tokens by session-id | ||||||
| Cache->>TokenHandler: 17. Return OAuthTokenResponse | ||||||
| TokenHandler->>TokenHandler: 18. Add Authorization: Bearer {#35;access_token{#35;} | ||||||
|
||||||
| TokenHandler->>TokenHandler: 18. Add Authorization: Bearer {#35;access_token{#35;} | |
| TokenHandler->>TokenHandler: 18. Add Authorization: Bearer #access_token# |
Copilot
AI
Jan 22, 2026
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.
HTML entities are being used instead of regular parentheses. In Mermaid diagrams, you should use regular parentheses instead of HTML entities. Replace #40; with ( and #41; with ).
Copilot
AI
Jan 22, 2026
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.
HTML entities are being used instead of regular parentheses. In Mermaid diagrams, you should use regular parentheses instead of HTML entities. Replace #40; with ( and #41; with ).
Copilot
AI
Jan 22, 2026
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.
HTML entities are being used instead of regular parentheses. In Mermaid diagrams, you should use regular parentheses instead of HTML entities. Replace #40; with ( and #41; with ).
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.
HTML entities are being used instead of regular parentheses. In Mermaid diagrams, you should use regular parentheses instead of HTML entities. Replace
#40;with(and#41;with).