Comments (3)
I'm sorry to hear that you are having issues with this. Unfortunately, it might be very difficult to reproduce. What are your settings? Are you using target
or completeInTarget
? What happens if you use completeInTarget: true
?
As for the above questions:
- In fact, the
target
option defaults toundefined
, but that should result in the same behavior as_self
. It is easier for people to understand that if we say in the docs that the default is "_self". - If
win == self
, then there is no need forpostMessage
. We are just using normal redirects then... - I am not even sure I understand this one.
So far, my only theory about what might be happening is this:
- The
authorize
function is called from a page that is loaded in an iframe. - By the time we get to
completeAuth
the script detects that we are in an iframe and does 2 things:
2.1. Sends a post message to it's parent (assuming that you have control over that window, but you do not)
2.2. Exits early, assuming that the parent will receive that post message and complete the auth.
The way to avoid that would be to use { completeInTarget: true }
even if your target
is _self
or undefined
(or points to the current window in some other way).
I have had similar issue here - https://codesandbox.io/s/fhir-client-typescript-react-spa-4e7rl Note the comments in index.tsx
.
from client-js.
@vlad-ignatov that did fix the issue. Thank you so much for the explanation!
from client-js.
Sorry to post on a closed topic. I ran into the same issue, it took me a good day or two to track down. The issue # 3 Admah pointed out seems to be the cause. Since I would assume fhir-client might be broadly used against the Epic App Orchard in an EHR launch context (in an iframe) I would suggest adding some documentation around this argument.
For posterity, the solution is to add the argument to the authorize call here
FHIR.oauth2.authorize({
'client_id': xxx,
'scope': xxx,
'completeInTarget': true
});
from client-js.
Related Issues (20)
- Unable to authorize using PKCE HOT 2
- Typo in README
- Unable to get patientId after successful login HOT 1
- (Error handling skipped on init) CompleteAuth not triggered for init HOT 1
- includeResponse not working for FHIR update operations
- "target: popup" (etc) demos don't work in current Chromium HOT 2
- Single SMART_KEY breaks authorization of several users on server-side
- Jest + RTL :: Testing with FHIRClient
- Uncaught (in promise) Error: Failed to fetch the conformance statement from "https://staging-fhir.ecwcloud.com/fhir/r4/FFBJCD/metadata". TypeError: Network request failed HOT 6
- Question: Smart-On-Fhir implementation inside Service Worker
- FHIR type Meta requiring lastUpdated property when spec allows it to be optional
- Node js After 10 min 401 unauthorized response HOT 4
- Window closes itself when it's not actually a popup
- Save token info in DB
- Support of PKCE even when the EHR .well-known configuration is not set? HOT 2
- Assumption on patient id in context
- Improve or rename "Contributing and Development" section in README
- Zombie `changelog.md` file in the project's root.
- npm audit report semver vulnerability
- Cannot specify custom aud parameter and FHIR server URL
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from client-js.