|
|
@ -872,12 +872,19 @@ |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
, logout: function(providerUri, opts) { |
|
|
|
return OAUTH3.hooks.directives.get(providerUri).then(function (directives) { |
|
|
|
, logout: function(issuerUri, opts) { |
|
|
|
var directives; |
|
|
|
if ('string' !== typeof issuerUri) { |
|
|
|
directives = issuerUri; |
|
|
|
return OAUTH3._logoutHelper(directives, opts); |
|
|
|
} |
|
|
|
|
|
|
|
return OAUTH3.hooks.directives.get(issuerUri).then(function (directives) { |
|
|
|
return OAUTH3._logoutHelper(directives, opts); |
|
|
|
}); |
|
|
|
} |
|
|
|
, _logoutHelper: function(providerUri, directives, opts) { |
|
|
|
, _logoutHelper: function(directives, opts) { |
|
|
|
var issuerUri = directives.issuer_uri || directives.provider_uri; |
|
|
|
var logoutReq = OAUTH3.urls.logout( |
|
|
|
directives |
|
|
|
, { client_id: (opts.client_id || opts.client_uri || OAUTH3.clientUri(OAUTH3._browser.window.location)) |
|
|
@ -900,10 +907,10 @@ |
|
|
|
|
|
|
|
if (params.error) { |
|
|
|
// TODO directives.audience
|
|
|
|
return OAUTH3.PromiseA.reject(OAUTH3.error.parse(directives.issuer /*providerUri*/, params)); |
|
|
|
return OAUTH3.PromiseA.reject(OAUTH3.error.parse(directives.issuer /*issuerUri*/, params)); |
|
|
|
} |
|
|
|
|
|
|
|
OAUTH3.hooks.session.clear(providerUri); |
|
|
|
OAUTH3.hooks.session.clear(issuerUri); |
|
|
|
return params; |
|
|
|
}); |
|
|
|
} |
|
|
|