var base64 = require('base64util'); var loginTmpl = require('./login.tmpl.html'); module.exports = function($storage, $http, authService, $modal) { var login = function(email, password) { // Encode authentication data. var authdata = base64.encode(email + ':' + password); return $http.post('/api/user/login', {}, { ignoreAuthModule: true, headers: { 'authorization': 'Basic ' + authdata } }).then(function (result) { $storage.session.set('refresh_token', result.data.refresh_token); $storage.session.set('access_token', result.data.access_token); authService.loginConfirmed(); }, function(result) { loginModal(); }); }; var loginModal = function () { $storage.session.clear(); $modal({ templateUrl: loginTmpl, controller: function($scope, $login) { $scope.$login = function() { $scope.$hide(); $login($scope.email, $scope.password); }; }, locals: { $login: login, } }); }; return { 'loginModal': loginModal, }; };