fix: add client_id and client_secret to form when type is request-body (via #4213)

This commit is contained in:
Scott O'Hara
2018-09-29 11:40:38 +10:00
committed by kyle
parent c5c4e08368
commit 054d450a45

View File

@@ -84,21 +84,33 @@ export const authorizePassword = ( auth ) => ( { authActions } ) => {
} else {
Object.assign(form, {username}, {password})
if ( passwordType === "query") {
if ( clientId ) {
query.client_id = clientId
}
if ( clientSecret ) {
query.client_secret = clientSecret
}
} else {
headers.Authorization = "Basic " + btoa(clientId + ":" + clientSecret)
switch ( passwordType ) {
case "query":
setClientIdAndSecret(query, clientId, clientSecret)
break
case "request-body":
setClientIdAndSecret(form, clientId, clientSecret)
break
default:
headers.Authorization = "Basic " + btoa(clientId + ":" + clientSecret)
}
}
return authActions.authorizeRequest({ body: buildFormData(form), url: schema.get("tokenUrl"), name, headers, query, auth})
}
function setClientIdAndSecret(target, clientId, clientSecret) {
if ( clientId ) {
Object.assign(target, {client_id: clientId})
}
if ( clientSecret ) {
Object.assign(target, {client_secret: clientSecret})
}
}
export const authorizeApplication = ( auth ) => ( { authActions } ) => {
let { schema, scopes, name, clientId, clientSecret } = auth
let headers = {