UNPKG

autobahnreact

Version:

Do realtime without headaches with Autobahn and React.

68 lines (53 loc) 1.98 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _autobahn = require('autobahn'); var _autobahn2 = _interopRequireDefault(_autobahn); var _ConnectionJs = require('./Connection.js'); var Auth = { currentUser: null, _onOpened: function _onOpened(args) { var session = args[0]; var details = args[1]; this.currentUser = { session_id: session.id, id: details.authid, role: details.authrole, provider: details.authprovider, method: details.authmethod }; return Promise.resolve(session, this.currentUser); }, _onClosed: function _onClosed() { this.currentUser = null; return Promise.reject(arguments); }, signUp: function signUp(userPayload) { var session = _ConnectionJs.Connection.currentConnection.session; return session.call('com.auth.signup', [userPayload]); }, logIn: function logIn(credentials) { return _ConnectionJs.Connection.reconnectWithAuth(credentials.username, credentials.password).then(this._onOpened.bind(this))['catch'](this._onClosed.bind(this)); }, isLogged: function isLogged() { return this.currentUser !== null; }, createToken: function createToken() { var session = _ConnectionJs.Connection.currentConnection.session; return session.call('com.auth.create_token', Array.prototype.slice.call(arguments), { disclose_me: true }); }, become: function become(token) { return _ConnectionJs.Connection.reconnectWithToken(token).then(this._onOpened.bind(this))['catch'](this._onClosed.bind(this)); }, canAccess: function canAccess(route) { var session = _ConnectionJs.Connection.currentConnection.session; return session.call(route, []).then(function () { return Promise.resolve(true); })['catch'](function () { return Promise.resolve(false); }); } }; exports.Auth = Auth;