feat(signin): wire /signin chooser into login flow + relabel buttons - #2606
Merged
Merged
Conversation
Relabel the two IdP-chooser buttons and route the deliberate sign-in action through the /signin chooser instead of straight to one IdP. - signin.html: buttons → "Sign in with SAP Account" and "Sign In if you don't already have an SAP Account" (hrefs/sap_idp keys unchanged); forward a safe relative returnTo onto the chosen /login?sap_idp URL. - header.html: shellbar profile-click (anonymous) → /signin?returnTo=… so the user picks an IdP. maybeAutoLogin (silent returning-visitor SSO, #1689) still targets /login directly — must not surface a chooser. - AppSpace.vue: step-1 "Log in with your SAP ID" is now a live sign-in link while anonymous (same /signin flow); passive label once logged in. - authentication.md: document the chooser-in-flow + returnTo forwarding. - e2e/signin.spec.ts: update button-label assertions to new labels.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Wires the standalone
/signinIdP-chooser page into the actual login flow and relabels its two buttons. Previously the chooser was orphaned — the shellbar sign-in action went straight to/login, which (withdynamicIdentityProvider+ a default IdP) jumps directly to one IdP and never shows the chooser.Changes
hugo/layouts/signin.html— relabel buttons:/login?sap_idp=sap.defaultunchanged)/login?sap_idp=sap.customunchanged)returnToonto the chosen/login?sap_idp=…URL (open-redirect guard mirrorslogin-redirect.html).hugo/layouts/partials/header.html— the shellbar profile-click (anonymous → deliberate sign-in) now redirects to/signin?returnTo=…so the user picks an IdP.maybeAutoLogin(silent returning-visitor SSO, Research the login Hanlding #1689) deliberately left on/login— it must resolve transparently against an existing IdP SSO session and must not surface a chooser.hugo-apps/src/app-space/AppSpace.vue— the App Space step-1 instruction "Log in with your SAP ID" is now a live sign-in link while anonymous (same/signinflow viastartLogin()); reverts to a passive label onceisLoggedIn. (Addresses Tom's follow-up on the app-space page.)docs/developers/architecture/authentication.md— document the chooser-in-flow behavior,returnToforwarding, and the auto-login carve-out.test/e2e/signin.spec.ts— update button-label assertions to the new labels (self-skips withoutSMOKE_BASE_URL).Design notes
/oauth/authorize. So "wire /signin into the flow" is implemented at the deliberate sign-in entry points (shellbar profile-click + app-space step 1), not via protected-route interception. This is the low-risk interpretation matching the approved design and avoids fighting the AppRouter auth handler.sap_idpkeys unchanged (sap.default/sap.custom) — confirmed correct.Testing
build:all) renders the island bundle;test:e2evalidates the chooser labels/hrefs. Not deploy-tested on this branch (golden rule: never deploy a feature branch).🤖 Generated with Claude Code