[英]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.