Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- angular.module('app.authService', [])
- .factory('Auth', function($http, $q, $window, AuthToken, $location) {
- var authFactory = {};
- authFactory.login = function(username, password) {
- return $http.post('/api/v1/auth', {
- username: username,
- password: password
- })
- .success(function(data) {
- AuthToken.setToken(data.token);
- return data;
- })
- };
- authFactory.logout = function() {
- AuthToken.setToken();
- $location.url('/');
- };
- authFactory.isLoggedIn = function() {
- if (AuthToken.getToken()) {
- return true;
- } else {
- return false;
- }
- };
- authFactory.getUser = function() {
- if (AuthToken.getToken()) {
- return $http.get('/api/v1/me').then(function(response) {
- return response.data;
- });
- } else {
- return $q.reject({ message: 'User has no token'});
- }
- };
- return authFactory;
- })
- .factory('AuthToken', function($window) {
- var authTokenFactory = {};
- authTokenFactory.getToken = function() {
- return $window.localStorage.getItem('token');
- };
- authTokenFactory.setToken = function(token) {
- if (token) {
- $window.localStorage.setItem('token', token);
- } else {
- $window.localStorage.removeItem('token');
- }
- };
- return authTokenFactory;
- })
- .factory('AuthInterceptor', function($q, $location, AuthToken) {
- var interceptorFactory = {};
- interceptorFactory = {};
- interceptorFactory.request = function(config) {
- var token = AuthToken.getToken();
- if (token) {
- config.headers['x-access-token'] = token;
- }
- return config;
- }
- interceptorFactory.responseError = function(response) {
- if (response.status == 403 || response.status == 401) {
- AuthToken.setToken();
- $location.path('/login');
- }
- return $q.reject(response);
- }
- return interceptorFactory;
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement