I am building a mobile version of an web application with Ionic 2 that uses SAML for SSO that is ran on my client's server. Right now we have an api that gets called when you are not logged into the website that redirects to their server for SSO, then returns back to our server when you log in. Then, the browser has cookie to store that the user is logged in.
I need to take that cookie and somehow get it to my Ionic application. I know that you can't share cookies from the InAppBrowser back to the application, but there has to be some way to get it back. Enough applications use Twitter, Facebook, etc that I assume there is something simple that I am missing.
Yeah this is notoriously difficult because of domain policy and inAppBrowser is a new instance that doesn't allow previous web view to access it.
There is a way however using InAppBrowser's executeScript()
method that lets you execute JavaScript in the opened window.
var win = window.open( "http://icenium.com", "_blank", "EnableViewPortScale=yes" );
win.addEventListener( "loadstop", function() {
win.executeScript({ code: "alert( 'hello' );" });
});
You can even provide a callback to retrieve values from the opened window
var win = window.open( "http://icenium.com", "_blank", "EnableViewPortScale=yes" );
win.addEventListener( "loadstop", function() {
win.executeScript(
{ code: "document.body.innerHTML" },
function( values ) {
alert( values[ 0 ] );
}
);
});
Then you could use the returned value to save it in local storage
This site provides some great code to help you out.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With