我有一个休息api,它将组织作为顶级对象,所有其他数据属于组织,例如订单,发票,项目等。
用户可以属于多个组织,在我的端口SPA上,我希望他们能够一次登录到一个应用程序并具有切换功能。
我应该在客户端存储当前的组织ID并将其与每个请求一起传递,还是应该有一个休息端点来设置用户表上的当前组织ID等,这也意味着当他们回来并登录时它已经设置为他们访问的最后一个组织。
答案 0 :(得分:2)
通常,无状态API相当常见。例如,您可以为每个请求传递一个Auth Token(JWT),它标识用户并可能提供有关User的其他信息。
如果您正在使用Laravel,您可能需要查看此程序包以处理JSON Web令牌:https://github.com/tymondesigns/jwt-auth。然后,您可以在登录时序列化您的User对象,该对象也可以包括其当前的组织。然后,前端可以随每个请求(作为授权标头)传递此令牌
答案 1 :(得分:2)
我是否应该在客户端存储当前的组织ID并将其与每个请求一起传递?
是下, 一般做法是在每个API中发送信息,因为API是无状态的。
我是否应该有一个休息端点来设置用户表上的当前组织ID?
否你不应该,其中一个原因就是让用户登录browser1你会将那个organizationId存储在表中,同一个用户从browser2登录这会覆盖你之前的ID
现在,如果你回到browser1,它将会有不一致的数据,除非你设计的机制不会覆盖以前的值。
希望有意义