๐
Sub-flow: Authenticate via Google SSO
SUC-IDP-03
This page is a sub-flow invoked from another use case โ when finished, control returns to the caller.
Continue with Google
Inferred draft โ main flow has no system screen (user is redirected to Google's OAuth page).
This page simulates the OAuth handoff and return.
Sign in with Google
The calling UC redirects the user to Google OAuth. After the user authenticates and grants permission, Google redirects back with a verified identity (email + google_sub). If the user is already signed in to Google in the browser, this step may be skipped (one-click sign-in).
OAuth redirect (simulated):
https://accounts.google.com/o/oauth2/v2/auth
?client_id=skillslao.apps.googleusercontent.com
&redirect_uri=https://skillslao.la/auth/google/callback
&scope=openid+email+profile
Screen Flow (SUC-IDP-03):
๐ Spec notes โ SUC-IDP-03 (preconditions, data touched, alternative flows)
Identity
- SUC: SUC-IDP-03 โ Authenticate via Google SSO
- Invoked by: UC-IDP.03 (Activate Staff Account), UC-IDP.07 (Login โ Staff)
- Screens: none in system โ flow is an external Google OAuth redirect; this page simulates the handoff
Preconditions
- The user is on a page that includes a "Continue with Google" option in the system.
- The system can connect to Google Identity Provider (ACT-06).
Data touched
AuthIdentityโ fields: provider, provider_uid, user_id, status ยท ops: readUserโ fields: id ยท ops: read
Alternative flows
- AF-2A User cancels at Google OAuth โ return to caller silently ยท
resume_at: end_failure - AF-3A Google returns error โ inline error on caller page ยท
resume_at: end_failure
Postconditions
- Success: System has verified email + Google identity with context (account exists / not yet created) for invoking UC to continue.
- Failure: No verified identity from Google โ invoking UC receives error and displays inline message to user.
ReturnUrl context
- Current value:
/home/ - Fallback: redirects to
/when returnUrl is absent - On success: redirect to
returnUrl - On cancel/failure: redirect to
cancelUrl(if provided) orreturnUrl?sub_cancelled=1 - cancelUrl value:
/login-staff/