I check this server side. If you're not logged on, I show a non-angular 
page for that on '/' that allows you to log on. When you're logged on, I 
show another page for '/' that contains the angularjs stuff. This should be 
possible with express.

On Wednesday, July 30, 2014 7:58:08 AM UTC+2, Damien Metcalf wrote:
>
> If user visits the base url or '/' and they are *not logged in* to the 
> application I would like them to see the *'welcome' state*. However *if a 
> user is logged in* I would like them to see the *'home' state*. So a user 
> would be able to browse around the site but when ever they went to '/' they 
> will only see the state they have permission to see.
>
> I am using the angular-fullstack generator with express, sockets & MongoDB 
> and Ui-Router
>
> Here is how I currently have things:
>
> 'use strict';
>
>
> angular.module('cbuiRouterApp', [
>   'ngCookies',
>   'ngResource',
>   'ngSanitize',
>   'ui.bootstrap',
>   'btford.socket-io',
>   'ui.router',
> ])
>
>   .config(function ($stateProvider, $urlRouterProvider, $locationProvider, 
> $httpProvider) {
>     $urlRouterProvider
>       .otherwise('/');
>
>     $stateProvider
>       .state('main', {
>         url: '/',
>         templateUrl: 'app/main/main.html',
>         controller: 'MainCtrl',
>         title: 'Main',
>         mainClass: 'main'
>       })
>       .state('welcome', {
>         url: '/',
>         templateUrl: 'app/welcome/welcome.html',
>         controller: 'WelcomeCtrl',
>         title: 'Welcome',
>         mainClass: 'welcome'
>       })
>            .state('login', {
>         url: '/login',
>         templateUrl: 'app/account/login/login.html',
>         controller: 'LoginCtrl'
>             });
>
>
>     $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) {
>       if (next.authenticate && !Auth.isLoggedIn()) {
>         $location.path('/login');
>       }
>     });
>   });
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to angular+unsubscr...@googlegroups.com.
To post to this group, send email to angular@googlegroups.com.
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to