在angularjs中的两个项目之间的路由

时间:2015-07-17 02:00:39

标签: c# angularjs angularjs-routing

我正在看一篇关于Angular应用程序如何在两个项目之间路由的文章。

我有两个名为 presentation.web security.web 的项目。

security.web 中,我有一个用于身份验证服务的控制器。用户通过身份验证后,需要将页面重定向到 presentation.web 中的主页。

如何通过使用单个应用来实现这一目标?或者我如何在两个应用程序之间路由?我使用visual studio 2013来开发我的项目(使用C#开发AngularJS应用程序)

我有注册控制器,并在security.web(在屏幕截图中突出显示)项目

下登录

have controller for registration and sign in

我在home.web项目(屏幕截图中突出显示)下有家庭控制器和todocontroller,当用户签名时,页面必须重定向到todoManager。

signincontroller:

        .success(function (data, status, headers, config) {
            $http.defaults.headers.common.Authorization = "Bearer " + data.access_token;
            $http.defaults.headers.common.RefreshToken = data.refresh_token;

            $cookieStore.put('_Token', data.access_token);
            window.location = '#/todomanager';
        })

home controller

现在我想要的是应用程序,我以正常的方式路由到我们使用的页面,但我想在这两个项目之间路由模块。是否可以像下面那样路由模块?

//================================================
// Routes
//================================================
$routeProvider.when('/home', {
    templateUrl: 'App/Home',
    controller: 'homeCtrl'
});
$routeProvider.when('/register', {
    templateUrl: 'App/Register',
    controller: 'registerCtrl'
});
$routeProvider.when('/signin/:message?', {
    templateUrl: 'App/SignIn',
    controller: 'signInCtrl'
});
$routeProvider.when('/todomanager', {
    templateUrl: 'App/TodoManager',
    controller: 'todoManagerCtrl'
});`app.run(['$http', '$cookies', '$cookieStore', function ($http, $cookies, $cookieStore) {
//If a token exists in the cookie, load it after the app is loaded, so that the application can maintain the authenticated state.
$http.defaults.headers.common.Authorization = 'Bearer ' + $cookieStore.get('_Token');
$http.defaults.headers.common.RefreshToken = $cookieStore.get('_RefreshToken');}]);`

这里我在presentation.web

中获取令牌
app.run(['$rootScope', '$http', '$cookies', '$cookieStore', function ($rootScope, $http, $cookies, $cookieStore) {

$rootScope.logout = function () {

    $http.post('/api/Account/Logout')
        .success(function (data, status, headers, config) {
            $http.defaults.headers.common.Authorization = null;
            $http.defaults.headers.common.RefreshToken = null;
            $cookieStore.remove('_Token');
            $cookieStore.remove('_RefreshToken');
            $rootScope.username = '';
            $rootScope.loggedIn = false;
            window.location = '#/signin';
        });

}

$rootScope.$on('$locationChangeSuccess', function (event) {
    if ($http.defaults.headers.common.RefreshToken != null) {
        var params = "grant_type=refresh_token&refresh_token=" + $http.defaults.headers.common.RefreshToken;
        $http({
            url: '/Token',
            method: "POST",
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
            data: params
        })
        .success(function (data, status, headers, config) {
            $http.defaults.headers.common.Authorization = "Bearer " + data.access_token;
            $http.defaults.headers.common.RefreshToken = data.refresh_token;

            $cookieStore.put('_Token', data.access_token);
            $cookieStore.put('_RefreshToken', data.refresh_token);

            $http.get('/api/WS_Account/GetCurrentUserName')
                .success(function (data, status, headers, config) {
                    if (data != "null") {
                        $rootScope.username = data.replace(/["']{1}/gi, "");//Remove any quotes from the username before pushing it out.
                        $rootScope.loggedIn = true;
                    }
                    else
                        $rootScope.loggedIn = false;
                });


        })
        .error(function (data, status, headers, config) {
            $rootScope.loggedIn = false;
        });
    }
});

}]);

或者我可以做什么路由?

0 个答案:

没有答案