Read token name using function in auth view

This commit is contained in:
Moses Palmér
2016-12-29 09:53:34 +01:00
parent fd3eb4f65a
commit 7ca8cdeffb
2 changed files with 17 additions and 6 deletions

View File

@@ -130,7 +130,7 @@ function handleLogin() {
* @return the name of the access token parameter * @return the name of the access token parameter
*/ */
function getTokenName(dets) { function getTokenName(dets) {
return dets.tokenName; return dets['x-tokenName'] || dets.tokenName;
} }
for (var key in authSchemes) { for (var key in authSchemes) {

View File

@@ -109,22 +109,33 @@ SwaggerUi.Views.AuthView = Backbone.View.extend({
window.enabledScopes = scopes; window.enabledScopes = scopes;
var flow = auth.get('flow'); var flow = auth.get('flow');
/**
* Returns the name of the access token parameter returned by the server.
*
* @param dets
* The authorisation scheme configuration.
* @return the name of the access token parameter
*/
function getTokenName(dets) {
return dets.tokenName;
}
if(auth.get('type') === 'oauth2' && flow && (flow === 'implicit' || flow === 'accessCode')) { if(auth.get('type') === 'oauth2' && flow && (flow === 'implicit' || flow === 'accessCode')) {
dets = auth.attributes; dets = auth.attributes;
url = dets.authorizationUrl + '?response_type=' + (flow === 'implicit' ? 'token' : 'code'); url = dets.authorizationUrl + '?response_type=' + (flow === 'implicit' ? 'token' : 'code');
container.tokenName = dets.tokenName || 'access_token'; container.tokenName = getTokenName(dets) || 'access_token';
container.tokenUrl = (flow === 'accessCode' ? dets.tokenUrl : null); container.tokenUrl = (flow === 'accessCode' ? dets.tokenUrl : null);
state = container.OAuthSchemeKey; state = container.OAuthSchemeKey;
} }
else if(auth.get('type') === 'oauth2' && flow && (flow === 'application')) { else if(auth.get('type') === 'oauth2' && flow && (flow === 'application')) {
dets = auth.attributes; dets = auth.attributes;
container.tokenName = dets.tokenName || 'access_token'; container.tokenName = getTokenName(dets) || 'access_token';
this.clientCredentialsFlow(scopes, dets, container.OAuthSchemeKey); this.clientCredentialsFlow(scopes, dets, container.OAuthSchemeKey);
return; return;
} }
else if(auth.get('type') === 'oauth2' && flow && (flow === 'password')) { else if(auth.get('type') === 'oauth2' && flow && (flow === 'password')) {
dets = auth.attributes; dets = auth.attributes;
container.tokenName = dets.tokenName || 'access_token'; container.tokenName = getTokenName(dets) || 'access_token';
this.passwordFlow(scopes, dets, container.OAuthSchemeKey); this.passwordFlow(scopes, dets, container.OAuthSchemeKey);
return; return;
} }
@@ -136,13 +147,13 @@ SwaggerUi.Views.AuthView = Backbone.View.extend({
dets = o[t]; dets = o[t];
ep = dets.loginEndpoint.url; ep = dets.loginEndpoint.url;
url = dets.loginEndpoint.url + '?response_type=token'; url = dets.loginEndpoint.url + '?response_type=token';
container.tokenName = dets.tokenName; container.tokenName = getTokenName(dets);
} }
else if (o.hasOwnProperty(t) && t === 'accessCode') { else if (o.hasOwnProperty(t) && t === 'accessCode') {
dets = o[t]; dets = o[t];
ep = dets.tokenRequestEndpoint.url; ep = dets.tokenRequestEndpoint.url;
url = dets.tokenRequestEndpoint.url + '?response_type=code'; url = dets.tokenRequestEndpoint.url + '?response_type=code';
container.tokenName = dets.tokenName; container.tokenName = getTokenName(dets);
} }
} }
} }