Fixed the SPA authentication flow
This commit is contained in:
18
README.md
18
README.md
@@ -52,11 +52,25 @@ On the first Opportunities modal opening in a page session, `requestCurrentUser`
|
||||
fetches SPA identity before tokenrelay or opportunity requests. Concurrent calls,
|
||||
Reference changes and modal reopenings reuse that result. Users with `SALES_REP`
|
||||
do not trigger CRM Service Request or Workload Actions queries or see their badges.
|
||||
If identity or roles cannot be validated, only these two features stay disabled;
|
||||
other opportunity features continue. Reload the page to refresh identity/roles.
|
||||
Identity must contain a valid user (id, name, roles) and token before dependent
|
||||
requests start. Failed identity validation keeps those requests waiting and retries
|
||||
with backoff. Reload the page to refresh identity/roles.
|
||||
The identity token is retained in debug responses and hidden by default; the
|
||||
explicit sensitive-values toggle reveals the original value.
|
||||
|
||||
After an initial identity failure, recovery opens `https://spa.oracle.com/` in one
|
||||
inactive auxiliary tab. The top-frame-only `spa-page.js` content script inspects
|
||||
the page without sending HTTP requests. It rejects error pages, SAML/login forms,
|
||||
OAuth callbacks and incomplete documents; cookies, HTTP 200 and elapsed time alone
|
||||
do not establish readiness. After a stable loaded document is verified, identity
|
||||
is fetched in that tab's same-origin context, at most once per document. A failed
|
||||
read requires a fresh verified navigation before retrying. Rejected callbacks
|
||||
restart at the SPA home URL, never at the one-use callback URL. A two-minute
|
||||
readiness timeout ends the cycle without an additional API probe. The owned tab
|
||||
and observers are cleaned up on success or failure. Debug metadata records the
|
||||
page state, wait reason and `spa-tab` execution context; sensitive values remain
|
||||
hidden by default. Reload the extension after changes to the manifest or script.
|
||||
|
||||
Consumer token recovery also handles HTTP 401/403, in addition to HTTP 200 with
|
||||
invalid JSON. It opens the existing SPA session URL in an inactive temporary tab,
|
||||
preserves the originating window and Firefox cookie store, and retries within
|
||||
|
||||
Reference in New Issue
Block a user