1
0
Fork 0
mirror of synced 2024-05-17 19:04:06 +12:00
budibase/packages/backend-core/src/middleware/passport/utils.js

40 lines
1 KiB
JavaScript
Raw Normal View History

2022-06-24 01:29:19 +12:00
const { getGlobalDB, isMultiTenant, getTenantId } = require("../../tenancy")
const { getScopedConfig } = require("../../db/utils")
const { Configs } = require("../../constants")
/**
2021-07-09 00:12:25 +12:00
* Utility to handle authentication errors.
*
* @param {*} done The passport callback.
* @param {*} message Message that will be returned in the response body
* @param {*} err (Optional) error that will be logged
*/
2022-06-24 01:29:19 +12:00
exports.authError = function (done, message, err = null) {
2021-07-09 00:12:25 +12:00
return done(
err,
null, // never return a user
{ message: message }
)
}
2022-06-24 01:29:19 +12:00
exports.ssoCallbackUrl = async (db, config, type) => {
// incase there is a callback URL from before
if (config && config.callbackURL) {
return config.callbackURL
}
const dbx = db ? db : getGlobalDB()
const publicConfig = await getScopedConfig(dbx, {
type: Configs.SETTINGS,
})
let callbackUrl = `/api/global/auth`
if (isMultiTenant()) {
callbackUrl += `/${getTenantId()}`
}
callbackUrl += `/${type}/callback`
return `${publicConfig.platformUrl}${callbackUrl}`
}