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