Swimlanes.io is a free webapp for making sequence diagrams. You simply edit the text on the left and the diagram is updated in real time. You can download your sequence diagrams as images or distribute with a link.
Title: Useless State Athorization Flow UserAgent -> App: GET `app.host/authorization?state=foo` App -> IdP: `idp.host/create-auth-url?state=foo` (PAR) IdP -->> App: request_uri=<val> App -> App: generate redirect_url App -->> UserAgent: redirect_to `idp.host/openid-connect/auth?request_uri=<val>&client_id=my-client` note: ``` set session: state=foo ``` UserAgent -> IdP: GET `idp.host/openid-connect/auth?request_uri=<val>&client_id=my-client` group: IdP Server IdP -> IdP: database.query(`request_uri=<val>&client_id=my-app`) note: ``` ResultSet: (state=foo,...) ``` end group: IdP User Login Page IdP -> IdP: User login form: `username:password` IdP -> IdP: authorize App permissions? end IdP --> UserAgent: redirect_to `app.host/callback?code=...&iss=...&state=foo` UserAgent -> App: GET `app.host/callback?code=...&iss=...&state=foo` note: ``` session: state=foo ``` App -> App: `Oidcc.Plug.AuthenticationCallback.check_state/2` note: ``` `params.state == session.state`: TRUE ``` App -> IdP: GET "idp.host/token?code=&iss=&state=" IdP -->> App: `eyToken` App -->> UserAgent: OK `eyToken`