我正试图为父/子关系提供一个适当的OAuth2身份验证流。
App和App是两个独立的应用程序.当单击来自App-A的链接时,App-B会在iframe中打开。
我负责维护App-B。
我如何设计流程,使App-B能够识别来自App-A的用户,并在两个应用程序之间保持相同的会话?
这就是我到目前为止想出的流程:
App-A将在交互之前向App-B提供一个客户端id和秘密密钥。GET /person向App-B的端点发出请求。App-B将向App-A服务器发送一个请求,其中客户机id、密钥和redirect-url设置为GET /person。现在,App-A将向App-B发送什么来传递经过身份验证的用户的会话信息。
如果流没有意义,你就可以摆脱它
发布于 2016-07-29 05:51:25
您的问题类似于在多个应用程序中维护会话。
您的方法的问题在于,您需要从前端发出请求,或者以某种方式向AppA (维护当前用户会话)发出请求,以公开客户端id/机密。
以下是一些你可以实现的想法,
是两个应用程序都位于同一个父域?,如果是,
与appA.domain.com和appB.domain.com一样,在成功的身份验证之后,您可以在父域*..domain.com中设置一些会话标识符cookie,然后从appB获得get当前用户会话,您也可以从中获取accessToken。
如果这两个应用程序都位于不同的域,那么
您需要一些常用的auth服务器来维护会话,因此当appA加载并且发现没有会话可用时,它可以重定向到公共auth服务器,该服务器依次检查会话(如果不允许用户登录),然后将数据发送回appA。
同样的流也适用于appB。
还请检查此链接http://merbist.com/2012/04/04/building-and-implementing-a-single-sign-on-solution/
https://stackoverflow.com/questions/38649872
复制相似问题