簡體   English   中英

成功登錄后要返回角度頁面嗎?

[英]Going back to angular page after successful login?

因此,我正在開發具有用戶身份驗證的Angular應用。

我不負責身份驗證的后端。

目前,該項目具有一個端點,我可以單擊該端點來訪問單獨托管的登錄頁面。

所以這是怎么回事。

(這些是樣本名稱)

我們的主要Web應用程序具有一個類似於https://node11.dev.com/webappname的鏈接

該Web應用程序的用戶登錄名

https://node11.dev.com:8082/api/applications/webappname/user/login/

當您達到該終點時,您會得到

https://node3.dev.com/cas/login?service =指向它重定向到的端點的鏈接以及JSessionId

相當確定我們正在使用Spring + CAS Web Security。

我可以使用用戶名和密碼登錄,但是成功登錄后,我只是返回帶有網址的空白頁面

https://node11.dev.com:8082/api/applications/user/login

我需要重定向回主應用程序頁面,同時啟用注銷和不啟用注銷功能。

我該怎么辦?

一些相關的代碼。

這是在導航HTML中,該登錄按鈕位於UI上。

<a class="user" href="https://node17.catapult.dev.boozallenet.com:8082/api/applications/godzilla/login"><i class="fa fa-user"></i> Login <i class="fa fa-caret-down"></i></a>

以前我沒有單擊href而是單擊ng,因為我覺得我可能必須使用POST或GET。

當我使用ng-click時,它調用了一個函數goToLogin,這就是該函數所做的。

function goToLogin(){
       $window.location.href=url;

    }

您正在獲取還是發布? 您可能應該使用ajax將其發布到該URL,並讓angular驗證登錄是否成功(通過服務器響應)。 然后,您可以使用任何路由器(ui-router是令人沮喪的流行解決方案)從angular調用登錄狀態。

解決此問題的最佳情況是在APP中使用switch情況,最初將switch的值設置為false,在成功登錄或從服務器響應后,將switch的值設置為true。

<div ng-switch on="loginData" >   <!-- begin switch -->

    <div ng-switch-when="false" ng-controller="loginController" ng-init="initLogin()">  
</div>

 <div ng-switch-when="true" ng-controller="dataController"> 
</div>
</div>

另一個解決方案

在您的應用中使用路由僅使用ng-binding div

var module = angular.module("SalesApp", ['ngRoute']);
module.config(['$routeProvider','$locationProvider','$httpProvider',
        function($routeProvider) {
           // var dir = window.location.pathname;
            $routeProvider.
                when('/dashboard', {
                    templateUrl: 'frontView.html',
                }).
                when('/searchresult', {
                    templateUrl: 'resultContainer.html',
                }).
                when('/postad', {
                    templateUrl: 'postAd.html',
                }).
                otherwise({
                    redirectTo: '/dashboard'
                });
        }]);

登錄后,只需更改div的根即可。

$location.path(pagePath);

兩者都對我有用。

這最終最終得到解決。 根據我們的應用程序設計,我無法從前端對其進行修復。 在后端,他們必須將CAS重定向網址更改回原始應用程序網址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM