Oauth 2.0 记忆授权
我正在使用新的软件包,考虑将其用作SSO服务,我已经关注了来自的视频(如果您没有帐户,该链接可能不起作用。如果没有,它将引导您完成一个示例项目)。现场按预期工作;我能够从客户端应用程序对用户进行身份验证,并使用返回的api令牌对api执行调用 但是,即使我已授权客户端访问受保护的资源,每次登录到客户端时,我都必须重新授权客户端。如果我说的没有意义,这就是流程:Oauth 2.0 记忆授权,oauth-2.0,laravel-5.3,Oauth 2.0,Laravel 5.3,我正在使用新的软件包,考虑将其用作SSO服务,我已经关注了来自的视频(如果您没有帐户,该链接可能不起作用。如果没有,它将引导您完成一个示例项目)。现场按预期工作;我能够从客户端应用程序对用户进行身份验证,并使用返回的api令牌对api执行调用 但是,即使我已授权客户端访问受保护的资源,每次登录到客户端时,我都必须重新授权客户端。如果我说的没有意义,这就是流程: 访问my-client.app 重定向到sso.app\oauth\authorization(授权服务器)以获取授权代码 登录到sso
sso.app
,并已授予my client.app
访问sso.app
受保护资源的权限。目前,sso.app
要求我再次授予授权,然后才会给我一个授权\u code
。我想让sso.app
意识到用户已经为客户端授予了授权,因此它应该只发出authorization\u code
,而无需再次请求授权
例如,我正在使用谷歌登录SO,但并不是每次都要求我授权
编辑:
看来,我想做的事情是不能开箱即用的
我的想法是创建一个表client\u user\u authorizations
,它将跟踪哪些用户授权了哪些客户端。然后,我将添加一个触发器(我更愿意将授权授予
的扩展GrantTypeInterface
类上的completeAuthorizationRequest
方法绑定到中,但这似乎是一个很大的难题)到将在插入时插入到客户端用户授权
表的oauth\u验证码
表
然后,我会制作自己的控制器来代替passport的AuthorizationController
(handlesGET:/oauth/authorization
),该控制器将调用一个方法来查看资源所有者是否已经授权了客户端,如果是这样,则调用必要的方法来发布授权代码。否则,将出现电流
你能看出我在想做什么有什么问题吗