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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.