35 lines
843 B
JavaScript
35 lines
843 B
JavaScript
module.exports = authenticate
|
|
|
|
function authenticate (state, options) {
|
|
if (!options) {
|
|
state.auth = false
|
|
return
|
|
}
|
|
|
|
switch (options.type) {
|
|
case 'basic':
|
|
if (!options.username || !options.password) {
|
|
throw new Error('Basic authentication requires both a username and password to be set')
|
|
}
|
|
break
|
|
|
|
case 'oauth':
|
|
if (!options.token && !(options.key && options.secret)) {
|
|
throw new Error('OAuth2 authentication requires a token or key & secret to be set')
|
|
}
|
|
break
|
|
|
|
case 'token':
|
|
case 'integration':
|
|
if (!options.token) {
|
|
throw new Error('Token authentication requires a token to be set')
|
|
}
|
|
break
|
|
|
|
default:
|
|
throw new Error("Invalid authentication type, must be 'basic', 'integration', or 'oauth'")
|
|
}
|
|
|
|
state.auth = options
|
|
}
|