Oauth 2.0 记忆授权

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服务,我已经关注了来自的视频(如果您没有帐户,该链接可能不起作用。如果没有,它将引导您完成一个示例项目)。现场按预期工作;我能够从客户端应用程序对用户进行身份验证,并使用返回的api令牌对api执行调用

但是,即使我已授权客户端访问受保护的资源,每次登录到客户端时,我都必须重新授权客户端。如果我说的没有意义,这就是流程:

  • 访问my-client.app
  • 重定向到sso.app\oauth\authorization(授权服务器)以获取授权代码
  • 登录到sso.app
  • 授权my-client.app访问sso.app资源
  • 使用授权代码重定向到my-client.app
  • 使用授权代码向sso.app\oauth\token发出POST请求以获取令牌
  • 使用令牌向受sso.app保护的资源发出请求
  • 注销my-client.app
  • 重定向到sso.app/logged-out(页面显示您已从my client.app注销)
  • 访问my-client.app
  • 重定向到sso.app\oauth\authorization以获取授权代码 此时,客户端已登录到
    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
    (handles
    GET:/oauth/authorization
    ),该控制器将调用一个方法来查看资源所有者是否已经授权了客户端,如果是这样,则调用必要的方法来发布
    授权代码。否则,将出现电流

    你能看出我在想做什么有什么问题吗