Javascript 成功登录后是否返回到angular页面?

Javascript 成功登录后是否返回到angular页面?,javascript,angularjs,spring,login,cas,Javascript,Angularjs,Spring,Login,Cas,因此,我正在开发一个具有用户身份验证的Angular应用程序 我不负责认证的后端 当前的项目有一个端点,我点击它来点击单独托管的登录页面 事情是这样的 (这些是示例名称) 我们的主Web应用程序有一个链接,如 此Web应用程序的用户登录将被取消 当你到达终点时,你会 =指向它从中重定向的端点的链接以及JSessionId 非常确定我们使用的是Spring+CAS Web安全性 我可以使用用户名和密码登录,但是成功登录后,我会返回一个带有url的空白页面 我需要重定向回主应用程序页面,同时启用

因此,我正在开发一个具有用户身份验证的Angular应用程序

我不负责认证的后端

当前的项目有一个端点,我点击它来点击单独托管的登录页面

事情是这样的

(这些是示例名称)

我们的主Web应用程序有一个链接,如

此Web应用程序的用户登录将被取消

当你到达终点时,你会

=指向它从中重定向的端点的链接以及JSessionId

非常确定我们使用的是Spring+CAS Web安全性

我可以使用用户名和密码登录,但是成功登录后,我会返回一个带有url的空白页面

我需要重定向回主应用程序页面,同时启用注销等等

我该怎么办

一些相关的代码

这是在导航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>

你是收邮件还是邮寄?您可能应该使用ajax发布到该url,并让angular验证登录是否成功(通过服务器响应)。然后,您可以使用任何路由器(ui路由器是一种流行的解决方案,如果令人沮丧的话)从angular调用登录状态。

您是获取还是发布?您可能应该使用ajax发布到该url,并让angular验证登录是否成功(通过服务器响应)。然后,您可以使用任何路由器(ui路由器是一种流行的、但令人沮丧的解决方案)从angular调用登录状态。

解决这一问题的最佳方案是在应用程序中使用switch case,最初将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>
登录后只需更改div的根

$location.path(pagePath);
这两种方法在很大程度上都适用于我
谢谢。

解决这一问题的最佳方法是在应用程序中使用switch case,最初将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>
登录后只需更改div的根

$location.path(pagePath);
这两种方法在很大程度上都适用于我
谢谢。

这最终得到了解决。基于我们应用程序的设计,我无法从前端修复它。在后端,他们必须将CAS重定向url更改回原始应用程序url

这最终得到了解决。基于我们应用程序的设计,我无法从前端修复它。在后端,他们必须将CAS重定向url更改回原始应用程序url

你能发布相关代码吗?否则很难确定问题。这里有太多的未知因素,但是如果您使用的是
ui路由器
main parent route中的解析可能会帮助您发布相关代码吗?否则很难确定问题。这里的未知数太多了,但如果您使用的是
ui路由器
主父路由中的解决方案目前可能会对您有所帮助。也不在UI端,它是通过一个锚定标记完成的,href设置为:如果我要发布,我将如何完成你所说的。我将使用与angular捆绑的$http服务。在登录表单提交(ng submit)时,执行一个函数,该函数使用$http()将凭据发布到服务器端点。然后在success函数中获取并保存一个会话令牌(jsessionid),您可以将其用作服务器后续请求的参数。拥有该令牌意味着您已登录。UI路由器()是一个完全不同的bean,但这就是我在angular中导航到新页面的方式。显示的登录不是此应用程序的一部分,而是该CAS web服务的一个独立前端。我想最简单的方法是为HTML制作一个登录模板,然后按照你的建议在表单上提交,点击端点。是的,Angular中的任何东西都可以。如果必须使用单独的前端部件,则可以使用localStorage或Cookie,并在重定向回angular后查找该数据(如果成功,其他组件必须将窗口位置设置回angular)。我不得不在Angular中为一个没有自己的auth并且生活在另一个应用程序的iframe中的应用程序做类似的事情。我们只需监听来自服务器的包含身份验证令牌的postMessage,并将其用于后续请求。我将如何使用cookies来处理它?目前。也不在UI端,它是通过一个锚定标记完成的,href设置为:如果我要发布,我将如何完成你所说的。我将使用与angular捆绑的$http服务。在登录表单提交(ng submit)时,执行一个函数,该函数使用$http()将凭据发布到服务器端点。然后在success函数中获取并保存一个会话令牌(jsessionid),您可以将其用作服务器后续请求的参数。拥有该令牌意味着您已登录。UI路由器()是一个完全不同的bean,但这就是我在angular中导航到新页面的方式。显示的登录不是此应用程序的一部分,而是该CAS web服务的一个独立前端。我想最简单的方法是为HTML制作一个登录模板,然后按照你的建议在表单上提交,点击端点。是的,Angular中的任何东西都可以。如果必须使用单独的前端部件,则可以使用localStorage或Cookie,并在重定向回angular后查找该数据(如果成功,其他组件必须将窗口位置设置回angular)。我不得不在Angular中为一个没有自己的auth并且生活在另一个应用程序的iframe中的应用程序做类似的事情。我们只需侦听包含来自服务器的身份验证令牌的postMessage,并将其用于后续请求。我将如何使用cookie来处理它?