phantauth.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict";
  2. /*
  3. * PhantAuth was designed to simplify testing for applications using OpenID Connect
  4. * authentication by making use of random generated users.
  5. *
  6. * To learn more, please go to: https://www.phantauth.net
  7. */
  8. const {
  9. Parse
  10. } = require('parse/node');
  11. const httpsRequest = require('./httpsRequest');
  12. // Returns a promise that fulfills if this user id is valid.
  13. function validateAuthData(authData) {
  14. return request('auth/userinfo', authData.access_token).then(data => {
  15. if (data && data.sub == authData.id) {
  16. return;
  17. }
  18. throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'PhantAuth auth is invalid for this user.');
  19. });
  20. }
  21. // Returns a promise that fulfills if this app id is valid.
  22. function validateAppId() {
  23. return Promise.resolve();
  24. }
  25. // A promisey wrapper for api requests
  26. function request(path, access_token) {
  27. return httpsRequest.get({
  28. host: 'phantauth.net',
  29. path: '/' + path,
  30. headers: {
  31. Authorization: 'bearer ' + access_token,
  32. 'User-Agent': 'parse-server'
  33. }
  34. });
  35. }
  36. module.exports = {
  37. validateAppId: validateAppId,
  38. validateAuthData: validateAuthData
  39. };
  40. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJodHRwc1JlcXVlc3QiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJyZXF1ZXN0IiwiYWNjZXNzX3Rva2VuIiwidGhlbiIsImRhdGEiLCJzdWIiLCJpZCIsIkVycm9yIiwiT0JKRUNUX05PVF9GT1VORCIsInZhbGlkYXRlQXBwSWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInBhdGgiLCJnZXQiLCJob3N0IiwiaGVhZGVycyIsIkF1dGhvcml6YXRpb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0F1dGgvcGhhbnRhdXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQaGFudEF1dGggd2FzIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IHRlc3RpbmcgZm9yIGFwcGxpY2F0aW9ucyB1c2luZyBPcGVuSUQgQ29ubmVjdFxuICogYXV0aGVudGljYXRpb24gYnkgbWFraW5nIHVzZSBvZiByYW5kb20gZ2VuZXJhdGVkIHVzZXJzLlxuICpcbiAqIFRvIGxlYXJuIG1vcmUsIHBsZWFzZSBnbyB0bzogaHR0cHM6Ly93d3cucGhhbnRhdXRoLm5ldFxuICovXG5cbmNvbnN0IHsgUGFyc2UgfSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKTtcbmNvbnN0IGh0dHBzUmVxdWVzdCA9IHJlcXVpcmUoJy4vaHR0cHNSZXF1ZXN0Jyk7XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIHRoYXQgZnVsZmlsbHMgaWYgdGhpcyB1c2VyIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBdXRoRGF0YShhdXRoRGF0YSkge1xuICByZXR1cm4gcmVxdWVzdCgnYXV0aC91c2VyaW5mbycsIGF1dGhEYXRhLmFjY2Vzc190b2tlbikudGhlbihkYXRhID0+IHtcbiAgICBpZiAoZGF0YSAmJiBkYXRhLnN1YiA9PSBhdXRoRGF0YS5pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ1BoYW50QXV0aCBhdXRoIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci4nKTtcbiAgfSk7XG59XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIHRoYXQgZnVsZmlsbHMgaWYgdGhpcyBhcHAgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUFwcElkKCkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59XG5cbi8vIEEgcHJvbWlzZXkgd3JhcHBlciBmb3IgYXBpIHJlcXVlc3RzXG5mdW5jdGlvbiByZXF1ZXN0KHBhdGgsIGFjY2Vzc190b2tlbikge1xuICByZXR1cm4gaHR0cHNSZXF1ZXN0LmdldCh7XG4gICAgaG9zdDogJ3BoYW50YXV0aC5uZXQnLFxuICAgIHBhdGg6ICcvJyArIHBhdGgsXG4gICAgaGVhZGVyczoge1xuICAgICAgQXV0aG9yaXphdGlvbjogJ2JlYXJlciAnICsgYWNjZXNzX3Rva2VuLFxuICAgICAgJ1VzZXItQWdlbnQnOiAncGFyc2Utc2VydmVyJyxcbiAgICB9LFxuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlQXBwSWQ6IHZhbGlkYXRlQXBwSWQsXG4gIHZhbGlkYXRlQXV0aERhdGE6IHZhbGlkYXRlQXV0aERhdGEsXG59O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNO0VBQUVBO0FBQU0sQ0FBQyxHQUFHQyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3ZDLE1BQU1DLFlBQVksR0FBR0QsT0FBTyxDQUFDLGdCQUFnQixDQUFDOztBQUU5QztBQUNBLFNBQVNFLGdCQUFnQkEsQ0FBQ0MsUUFBUSxFQUFFO0VBQ2xDLE9BQU9DLE9BQU8sQ0FBQyxlQUFlLEVBQUVELFFBQVEsQ0FBQ0UsWUFBWSxDQUFDLENBQUNDLElBQUksQ0FBQ0MsSUFBSSxJQUFJO0lBQ2xFLElBQUlBLElBQUksSUFBSUEsSUFBSSxDQUFDQyxHQUFHLElBQUlMLFFBQVEsQ0FBQ00sRUFBRSxFQUFFO01BQ25DO0lBQ0Y7SUFDQSxNQUFNLElBQUlWLEtBQUssQ0FBQ1csS0FBSyxDQUFDWCxLQUFLLENBQUNXLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUsMENBQTBDLENBQUM7RUFDakcsQ0FBQyxDQUFDO0FBQ0o7O0FBRUE7QUFDQSxTQUFTQyxhQUFhQSxDQUFBLEVBQUc7RUFDdkIsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztBQUMxQjs7QUFFQTtBQUNBLFNBQVNWLE9BQU9BLENBQUNXLElBQUksRUFBRVYsWUFBWSxFQUFFO0VBQ25DLE9BQU9KLFlBQVksQ0FBQ2UsR0FBRyxDQUFDO0lBQ3RCQyxJQUFJLEVBQUUsZUFBZTtJQUNyQkYsSUFBSSxFQUFFLEdBQUcsR0FBR0EsSUFBSTtJQUNoQkcsT0FBTyxFQUFFO01BQ1BDLGFBQWEsRUFBRSxTQUFTLEdBQUdkLFlBQVk7TUFDdkMsWUFBWSxFQUFFO0lBQ2hCO0VBQ0YsQ0FBQyxDQUFDO0FBQ0o7QUFFQWUsTUFBTSxDQUFDQyxPQUFPLEdBQUc7RUFDZlQsYUFBYSxFQUFFQSxhQUFhO0VBQzVCVixnQkFBZ0IsRUFBRUE7QUFDcEIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==