diff --git a/packages/meteor-accounts-saml/saml_client.js b/packages/meteor-accounts-saml/saml_client.js index 5a5bb199523..0854f7ebcf2 100644 --- a/packages/meteor-accounts-saml/saml_client.js +++ b/packages/meteor-accounts-saml/saml_client.js @@ -1,4 +1,4 @@ -/* globals cordova */ +/* globals cordova, Cookies */ if (!Accounts.saml) { Accounts.saml = {}; @@ -6,17 +6,22 @@ if (!Accounts.saml) { // Override the standard logout behaviour. // -// If we find a samlProvider in our session, and we are using single +// If we find a samlProvider in our cookie, and we are using single // logout we will initiate logout from rocketchat via saml. +// If not using single logout, we just do the standard logout. +// +// TODO: This may need some work as it is not clear if we are really +// logging out of the idp when doing the standard logout. var MeteorLogout = Meteor.logout; Meteor.logout = function() { - var provider = Session.get('samlProvider'), - usingSingleLogout = Session.get('usingSingleLogout'); + var cookies = new Cookies(); + var provider = cookies.get('samlProvider'), + usingSingleLogout = cookies.get('usingSingleLogout'); if (provider) { - Session.set('samlProvider', false); - Session.set('usingSingleLogout', false); + cookies.set('samlProvider', false); + cookies.set('usingSingleLogout', false); if (usingSingleLogout) { return Meteor.logoutWithSaml({ provider: provider }); } @@ -96,7 +101,8 @@ Accounts.saml.initiateLogin = function(options, callback, dimensions) { Meteor.loginWithSaml = function(options, callback) { - Session.set('samlProvider', options.provider); + var cookies = new Cookies(); + cookies.set('samlProvider', options.provider); options = options || {}; var credentialToken = Random.id(); options.credentialToken = credentialToken; @@ -115,7 +121,7 @@ Meteor.loginWithSaml = function(options, callback) { Meteor.call('usingSingleLogout', options.provider, function (err, res) { if (! err) { - Session.set('usingSingleLogout', res); + cookies.set('usingSingleLogout', res); } console.log('usingSingleLogout', res); });