Mercurial > hg > digilib
changeset 1516:656feafc283f
make token_cookie_path configurable.
author | robcast |
---|---|
date | Wed, 04 May 2016 20:19:12 +0200 |
parents | 70a487a10319 |
children | 51486c82ed89 |
files | webapp/src/main/webapp/jquery/jquery.digilib.oauth.js |
diffstat | 1 files changed, 16 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.oauth.js Wed May 04 20:06:44 2016 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.oauth.js Wed May 04 20:19:12 2016 +0200 @@ -56,8 +56,9 @@ // url param for ID Token 'id_token' : null, // name for ID token cookie - 'token_cookie_name' : 'id_token' - + 'token_cookie_name' : 'id_token', + // path of ID token cookie (guessed if empty) + 'token_cookie_path' : null }; var actions = { @@ -97,6 +98,7 @@ var handleUnpack = function (evt) { console.debug("oauth: handleUnpack"); var data = this; + var settings = data.settings; // unpack token from url fragment var frag = window.location.hash; if (frag) { @@ -105,32 +107,31 @@ console.error("auth server returned error: "+fragp['error']); discardToken(data); // reset auth-on-error to exit loop - data.settings.authOnErrorMode = false; + settings.authOnErrorMode = false; // TODO: what now? return; } else if (fragp['id_token'] != null) { var token = fragp['id_token']; // save id_token in cookie if ($.cookie) { - // set path so Scaler can see it (relative part of base url) - var cp = data.settings.digilibBaseUrl.replace(/^.*\/\/[^\/]+\//, '/'); - $.cookie(data.settings.token_cookie_name, token, {'path': cp}); + var opts = {'path': settings.token_cookie_path}; + $.cookie(settings.token_cookie_name, token, opts); } // and set for Scaler - data.settings.id_token = token; + settings.id_token = token; // remove fragment from URL window.location.hash = ''; } } else { // get token from cookie - if ($.cookie && $.cookie(data.settings.token_cookie_name)) { + if ($.cookie && $.cookie(settings.token_cookie_name)) { // set token for Scaler - data.settings.id_token = $.cookie(data.settings.token_cookie_name); + data.settings.id_token = $.cookie(settings.token_cookie_name); } } checkToken(data); // set scaler errcode mode - if (data.settings.authOnErrorMode) { + if (settings.authOnErrorMode) { var flags = data.scalerFlags; // remove other error flags for (f in flags) { @@ -282,6 +283,11 @@ var init = function (data) { console.debug('initialising oauth plugin. data:', data); var $data = $(data); + // set cookie path + if (data.settings.token_cookie_path == null) { + // use relative path of digilibBaseUrl + data.settings.token_cookie_path = data.settings.digilibBaseUrl.replace(/^.*\/\/[^\/]+\//, '/'); + } // add buttons installButtons(data); // install event handler