我们希望使用相同的用户数据库和 Rest API 开发一些不同的服务(React Apps)。有些用户可能可以访问 APP 1,有些用户可以访问 APP 2,有些用户可以访问两者,具体取决于他们的角色。
我们决定采用多个子域应用程序方法。
我们希望 SSO 只用一个页面/应用程序来验证所有应用程序,而不是每个应用程序的本地登录组件。在我们的后端使用 JWT 机制。
假设我进入登录应用程序并登录,从后端获取 accestoken。如何将令牌传送到 app1.company.com?应该使用 url 参数中的 token 来反应登录 APP 重定向吗?
本地存储是子域范围的。
iframe 在 Safari 中存在问题。
我现在不想将 jwt 保存在 cookie 中,因为 Flask REST 可以为非浏览器零售客户端提供服务。
假设用户想要转到 app2。如果我们无法与 iframe 或任何其他方法共享 app1 的令牌,那么该应用程序应该重定向到登录并再次以 app1 的方式进行该过程,这对我们来说很好。但这真的是这样吗?如果令牌不再有效并且我们从后端收到错误,我们是否应该重定向到其他子域中的登录应用程序(嵌入我们想要在登录成功后返回的网址)?
我可以只使用第 3 方 Open id 连接服务吗?
我是否应该考虑微前端应用程序来使所有“应用程序”位于同一域上?
以“Attlassian”为例,如何处理这个过程?
我知道Python有一个GIL,它使得线程不能同时运行,因此线程只是上下文切换。
为什么java不一样?每种语言的同一 CPU 上的线程不能并行运行。
在java中创建新线程是否利用多核机器中的核心?
与 java 相比,python 只能在同一 CPU 上生成线程?
如果 1. 是这种情况,当使用比 CPU 更多的线程时,即使在 java 中,也会再次返回其中几个线程的上下文切换?
如果 1. 是这样的话,那么它与多处理有何不同?因为不能保证利用多个核心?
线程的全部意义不就是能够使用相同的内存空间吗?如果java确实在多个线程中运行其中一些以实现并行性,那么它们如何真正共享内存?
谢谢