I’m trying to integrate with a third party service using 3-legged oauth in my connect app. I can ‘break-out’ of Jira by setting window.top.location.href = "3rd-party-auth-location"
, but I’m struggling with how to redirect my users back into my app after the callback.
Ideally I wanted to send users back to ‘wherever they were’ when they started the oauth flow, but I’m being foiled because while I can set the top location, the iframe is blocked from reading it.
I can always try and manually construct the appropriate URL, (e.g. https://<instance>.atlassian.net/plugins/servlet/ac/<location-in-app>
), but that’s horribly hacky and seems liable to break.
I tried using AP.navigator.getLocation()
, but it failed with no context function defined
, even directly copying the example from the docs. In any case, it doesn’t look like it would return anything useful.
I feel like this must be possible from within the frame, as setting base:true
on the atlassian all.js
results in the top location being included in the injected <base>
tag, but can’t see how it’s doing that.
I could do this by including the <base>
tag (I don’t currently) and reading it out of there, but I really want to avoid it if possible because it seems I’d have to update all my URLs to be absolute, which is going to be pretty painful.
I know there are other apps doing the oauth dance and redirecting back in, so must be possible somehow!