The two login interfaces apply the same account, school, and Access-PIN rules and issue compatible access and refresh tokens. Choose one lifecycle and use it consistently in your client.
GraphQL authentication lifecycle
REST authentication lifecycle
Confirm current REST fields in Swagger or ReDoc.
Authorize GraphQL calls
Refresh and revocation
Refresh tokens rotate. After a successful refresh, replace both stored tokens with the returned
access and refresh; the previous refresh token cannot be reused. If refresh fails, clear local authentication and require sign-in. Do not create an infinite retry loop.

