代码之家  ›  专栏  ›  技术社区  ›  Torprendido

为什么ember数据存储在y域中的2个webb应用程序之间共享令牌?

  •  0
  • Torprendido  · 技术社区  · 1 年前

    0

    我在ember.js中有两个不同的应用程序,它们都连接到同一个api:“host1:3000/appA”和“host2:3001/appB”。我使用nginx是为了让客户端可以通过一个域访问appA和appB,即:“mydomain.com/appA”和“mydomain.com/sappB”。一切都是正确的,但应用程序共享“存储”ember对象。所以,如果我登录到appA,我也会登录到appB。如何防止应用程序之间的会话共享?。

    我使用了nginx中的这段代码,但不起作用:

    location /appA {
      proxy_pass http://host1:3000;
      proxy_cookie_path /appA /appA;
    }
    
    location /appB {
      proxy_pass http://host2:3001;
      proxy_cookie_path /appB /appB;
    }
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   Liam Potter    1 年前

    至少有一个应用程序需要设置新的会话存储。

    在下创建目录 app 调用 session-stores 并创建一个名为 application.js

    这个文件的内容应该是这样的

    import AdaptiveStore from 'ember-simple-auth/session-stores/adaptive';
    
    export default class ApplicationSessionStore extends AdaptiveStore {
      cookieName = 'your-app-name-cookie';
      localStorageKey = 'your-app-name-token';
    }
    

    这将使两个应用程序的会话数据在不同的密钥下完全分离。如果您没有使用自适应存储(您可能正在使用),那么您将从正在使用的存储进行扩展。