/client/app/app.js
JavaScript | 54 lines | 45 code | 5 blank | 4 comment | 6 complexity | 3a7b6b0127150681e20cb56feeab42c3 MD5 | raw file
- 'use strict';
- angular.module('miningWebuiApp', [
- 'ngCookies',
- 'ngResource',
- 'ngSanitize',
- 'btford.socket-io',
- 'ui.router',
- 'ui.bootstrap'
- ])
- .config(function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
- $urlRouterProvider
- .otherwise('/');
- $locationProvider.html5Mode(true);
- $httpProvider.interceptors.push('authInterceptor');
- })
- .factory('authInterceptor', function ($rootScope, $q, $cookieStore, $location) {
- return {
- // Add authorization token to headers
- request: function (config) {
- config.headers = config.headers || {};
- if ($cookieStore.get('token')) {
- config.headers.Authorization = 'Bearer ' + $cookieStore.get('token');
- }
- return config;
- },
- // Intercept 401s and redirect you to login
- responseError: function(response) {
- if(response.status === 401) {
- $location.path('/login');
- // remove any stale tokens
- $cookieStore.remove('token');
- return $q.reject(response);
- }
- else {
- return $q.reject(response);
- }
- }
- };
- })
- .run(function ($rootScope, $location, Auth) {
- // Redirect to login if route requires auth and you're not logged in
- $rootScope.$on('$stateChangeStart', function (event, next) {
- Auth.isLoggedInAsync(function(loggedIn) {
- if (next.authenticate && !loggedIn) {
- $location.path('/login');
- }
- });
- });
- });