GithubHelp home page GithubHelp logo

Comments (3)

vlad-ignatov avatar vlad-ignatov commented on August 19, 2024

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:

  1. In fact, the target option defaults to undefined, 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".
  2. If win == self, then there is no need for postMessage. We are just using normal redirects then...
  3. I am not even sure I understand this one.

So far, my only theory about what might be happening is this:

  1. The authorize function is called from a page that is loaded in an iframe.
  2. 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.

admah avatar admah commented on August 19, 2024

@vlad-ignatov that did fix the issue. Thank you so much for the explanation!

from client-js.

nakker avatar nakker commented on August 19, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.