@saphocom/auth0-plugin-cordova
Version:
auth0.js plugin for auth flow handling in Cordova environment.
83 lines (60 loc) • 2.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _urlJoin = require('url-join');
var _urlJoin2 = _interopRequireDefault(_urlJoin);
var _PopupHandler = require('./PopupHandler');
var _PopupHandler2 = _interopRequireDefault(_PopupHandler);
var _BrowserViewHandler = require('./BrowserViewHandler');
var _BrowserViewHandler2 = _interopRequireDefault(_BrowserViewHandler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var PluginHandler = function () {
/**
* @param {WebAuth} webAuth
*/
function PluginHandler(webAuth) {
_classCallCheck(this, PluginHandler);
this.webAuth = webAuth;
}
/**
* @param {Object} params
* @returns {Object} Modified params
*/
_createClass(PluginHandler, [{
key: 'processParams',
value: function processParams(params) {
this.params = params;
if (!this._canUseBrowserView()) {
console.log('Auth0 needs safariviewcontroller and customurlscheme plugins to work correctly in Cordova environment. ', 'Falling back to legacy mode..');
params.redirectUri = (0, _urlJoin2.default)('https://' + params.domain, 'mobile');
}
delete params.owp;
return params;
}
}, {
key: 'getPopupHandler',
value: function getPopupHandler() {
if (!this.params || !this._canUseBrowserView()) {
return new _PopupHandler2.default(this.webAuth);
}
return new _BrowserViewHandler2.default(this.webAuth);
}
/**
* Whether Browser View (SafariViewController / ChromeCustomTabs) is available in current constellation
*
* @returns {boolean}
* @private
*/
}, {
key: '_canUseBrowserView',
value: function _canUseBrowserView() {
return (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && _typeof(window.SafariViewController) === 'object';
}
}]);
return PluginHandler;
}();
exports.default = PluginHandler;