UNPKG

cobuild-angular-stack

Version:

Base stack angular sass jade gulp

134 lines (114 loc) 3.89 kB
(function () { 'use strict'; angular .module('uniko.authLoopback', []) .factory('Auth', AuthFactory) .factory('AdminAuth', AdminAuth); AdminAuth.$inject = ['LoopBackAuth', 'AdminAccount']; function AdminAuth(LoopBackAuth, AdminAccount) { function login(username, password) { return AdminAccount.login({username: username, password: password}).$promise; } function logout() { return AdminAccount.logout().$promise; } function isAuthenticated() { return !!LoopBackAuth.accessTokenId; } function getAuthData() { return LoopBackAuth; } return { login: login, logout: logout, isAuthenticated: isAuthenticated, getAuthData: getAuthData }; } AuthFactory.$inject = ['LoopBackAuth', 'CoupleAccount', '$localStorage']; function AuthFactory(LoopBackAuth, CoupleAccount, $localStorage) { var current; function login(email, password) { var promise = CoupleAccount.login({email: email, password: password}).$promise; promise .then(function (a) { Auth.getCurrent(); }); return promise; } function onboardingLogin(source) { return CoupleAccount.onboardingLogin(source) .$promise .then(function (data) { var user = data.user; var token = data.token; token.user = user; Auth.setAuthData(token); Auth.isTmpAccount(true); return Auth .getCurrent() .$promise .then(function () { return data; }); }).catch(function(err){ console.log('onboardingLogin ERR = ',err) }); } function logout() { return CoupleAccount.logout().$promise; } function register(email, password) { return CoupleAccount .create({ email: email, password: password }) .$promise; } function isAuthenticated() { return !!LoopBackAuth.accessTokenId; } function getAuthData() { return LoopBackAuth; } function getCurrent() { if (!current) { current = CoupleAccount.getCurrent(); } return current; } function setUser(token, config) { config = config || {params: {}}; var accessToken = token; LoopBackAuth.setUser(accessToken.id, accessToken.userId, accessToken.user); LoopBackAuth.rememberMe = config.params.rememberMe !== false; LoopBackAuth.save(); } function isTmpAccount(isTmp) { if ('undefined' !== typeof isTmp) { $localStorage.isTmpAccount = isTmp; } return $localStorage.isTmpAccount; } function clearAccount() { current = null; LoopBackAuth.clearUser(); LoopBackAuth.clearStorage(); delete $localStorage.isTmpAccount; } var Auth = { login: login, onboardingLogin: onboardingLogin, logout: logout, register: register, isAuthenticated: isAuthenticated, getAuthData: getAuthData, setAuthData: setUser, isTmpAccount: isTmpAccount, clearAccount: clearAccount, getCurrent: getCurrent }; return Auth; } })();