Angularjs 使用多个应用程序和会话管理

Angularjs 使用多个应用程序和会话管理,angularjs,session,Angularjs,Session,我有4个angular应用程序,其中一个是登陆应用程序,要求用户登录,并根据其类型重定向用户 到其他3个应用程序之一。我不知道该如何实现这一目标 让这三个应用程序在不同的子域上运行。登录后端后发送重定向响应,确定它是什么类型的用户 但这会导致cors错误。此外,我不确定我正在设置的cookie是否可以在所有子域中访问 有办法吗?您可以进行重定向,但这似乎是一个不必要的步骤(对于这种类型的应用程序来说有点复杂) 与基于登录返回重定向相比,只在响应中返回要重定向到的地址似乎更简单。触发查找以确定您应

我有4个angular应用程序,其中一个是登陆应用程序,要求用户登录,并根据其类型重定向用户 到其他3个应用程序之一。我不知道该如何实现这一目标

  • 让这三个应用程序在不同的子域上运行。登录后端后发送重定向响应,确定它是什么类型的用户
  • 但这会导致cors错误。此外,我不确定我正在设置的cookie是否可以在所有子域中访问


    有办法吗?

    您可以进行重定向,但这似乎是一个不必要的步骤(对于这种类型的应用程序来说有点复杂)

    与基于登录返回重定向相比,只在响应中返回要重定向到的地址似乎更简单。触发查找以确定您应该指向哪个应用程序(无论您是如何操作的),然后在响应数据中返回应用程序的地址。从Angular中,您可以从
    $http
    中的
    response.data
    中提取地址。(见附件)。这里的好处是,您还可以将路由控制和状态知识保存在Angular本身中

    至于应用程序本身——而不是子域,你可以简单地将应用程序放在你域上的不同文件夹中。这涉及CORS和cookie问题

    否则,您需要设置一个。您可以在将请求发送到的任何后端上执行此操作—通常有某种库可以简化此操作,例如,对于Flask。如果在这种情况下需要共享cookie,本文将讨论一种方法(使用中间域)

  • 使用App1对用户进行身份验证时,使用身份验证表中的某些TTL为用户会话生成安全密钥

  • 使用此安全密钥将用户重定向到任何域中的任何其他应用程序,用户可以在其中查询身份验证表并验证用户

  • 让这些其他应用程序自己工作(在前端),并在必要时使用安全密钥与后端通信


  • 很多PHP框架都内置了对这种机制的支持。我最喜欢的是Silex

    嘿,面对同样的问题。返回url并使用$window.location.href转到其他应用程序。但是如果我这样做了,我怎么能把数据和这个一起发送呢。我所说的数据是指身份验证密钥?它取决于您的服务器设置和您尝试执行的操作。它是一个单页应用程序,还是您只是将其用作静态资产的登录?这里最简单的方法是自己处理表单提交(根据将表单作为模型附加),只需向对象添加一个附加变量(例如$scope.user.authentication)。通过
    $http
    发送
    用户
    对象,然后使用
    然后从中回调来提取地址并进行路由(即,其中有一个函数,最好使用angular的$route/$routeProvider进行更多控制)。显然,使用此函数(甚至使用表单提交),您可能希望通过https来防止窃听。