autobahnreact
Version:
Do realtime without headaches with Autobahn and React.
68 lines (53 loc) • 1.98 kB
JavaScript
;
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;