6

我们正在运行一个 Web 应用程序(shiny-server,其中的编码是在 R 中完成的)并希望向它添加一个身份验证层。我没有在 R 中构建一些东西来执行此操作,而是考虑使用流星来创建身份验证令牌等等。这是我想这样做的方式:

  • 用户使用流星登录,流星创建一个看起来像这样的数据库条目:
    { "createdAt" : 1372521823708,
      "_id" : "HSdbPBuYy5wW6FBPL",
      “服务”:{“密码”:{“srp”:{“身份”:“vKpxEzXboBaQsWYyJ”,
            “盐”:“KRt5HrziG6RDnWN8o”,
            "verifier" : "8d4b6a5edd21ce710bd08c6affb6fec29a664fbf1f42823d5cb8cbd272cb9b2b3d5faa681948bc955353890f645b940ecdcc9376e88bc3dae77042d14901b5d22abd00d37a2022c32d925bbf839f65e4eb3a006354b918d5c8eadd2216cc2dbe0ce12e0ad90a383636a1327a91db72cf96cd4e672f68544eaea9591f6ed102e1" } },
        “简历”:{“登录令牌”:[
            {“令牌”:“t9Dxkp4ANsYKuAQav”,
              “当”:1372521823708}]}},
      “电子邮件”:[
        {“地址”:“example@example.com”,
          “已验证”:假 } ] }
  • 用户被重定向到“旧应用程序”。在这里我们检查本地存储(如果我们使用相同的面向外的主机和端口,应该是与流星相同的本地存储,对吗?)并找到以下信息:
    Meteor.loginToken: t9Dxkp4ANsYKuAQav
    Meteor.userId:HSdbPBuYy5wW6FBPL
  • 本地存储数据由“其他应用程序”调查,它对流星数据库进行简单的数据库查询,以验证本地存储信息是否与数据库中的信息匹配。也许还要检查某种到期日期。如果匹配,则应用程序呈现,否则不呈现。

这是一种相当安全的方法吗?它会在应用程序之间共享本地存储吗?

4

1 回答 1

0

当然,您必须确保您的 WebSocket 运行在 TLS 上。LocalStorage使用简单的Same-origin Policy。所以是的,它会起作用。LocalStorage 和 cookie 一样安全,所以没关系。

TLDR:

是的和是的

于 2015-06-16T18:05:38.783 回答