'use strict'; angular.module('Auth').factory("AuthSvc", function($http, $q, $window) { var userInfo = { authenticated : false }; function login(username, password) { var deferred = $q.defer(); $http.post("/api/login", { username: username, password: password }).then(function(result) { userInfo = { accessToken : result.data.access_token, userName : result.data.userName, authenticated : result.data.authenticated }; $window.sessionStorage["userInfo"] = JSON.stringify(userInfo); deferred.resolve(userInfo); }, function(error) { deferred.reject(error); }); return deferred.promise; } function logout() { var deferred = $q.defer(); $http({ method : "POST", url : "/api/logout", headers : { "access_token" : userInfo.accessToken } }).then(function(result) { userInfo = null; $window.sessionStorage["userInfo"] = null; deferred.resolve(result); }, function(error) { deferred.reject(error); }); return deferred.promise; } function getUserInfo() { // if (typeof userInfo === "undefined") // alert("TURKEY"); // if (typeof userInfo.authenticated === "undefined") // alert("TURKEY2"); // else // alert("TURKEY2.1: " + userInfo.authenticated); // alert("TURKEY3"); return userInfo; } function init() { if ($window.sessionStorage["userInfo"]) { userInfo = JSON.parse($window.sessionStorage["userInfo"]); if (typeof userInfo.authenticated === 'undefined') userInfo.authenticated = false; } } init(); return { login : login, logout : logout, getUserInfo : getUserInfo }; });