繁体   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