gatsby-source-cloudbase-cms
Version:
Gatsby source plugin for building websites using CloudBase CMS as a data source
34 lines (26 loc) • 991 B
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _fp = require("lodash/fp");
var _axios = _interopRequireDefault(require("axios"));
module.exports = async ({
loginData,
reporter,
apiURL
}) => {
const validIndentifier = (0, _fp.has)('identifier', loginData) && loginData.identifier.length !== 0;
const validPassword = (0, _fp.has)('password', loginData) && loginData.password.length !== 0;
if (validIndentifier && validPassword) {
const authenticationActivity = reporter.activityTimer(`Authenticate CloudBase User`);
authenticationActivity.start(); // Make API request.
try {
const loginResponse = await _axios.default.post(`${apiURL}/auth/local`, loginData);
authenticationActivity.end();
if ((0, _fp.has)('data', loginResponse)) {
return loginResponse.data.jwt;
}
} catch (e) {
reporter.panic('CloudBase authentication error: ' + e);
}
}
return null;
};