1

我从 githhub 为我的 API 服务器使用了 OAuth2 代码:https ://github.com/lucadegasperi/oauth2-server-laravel

而不是使用标准的 Laravel Auth,我想使用 Sentry,因为 Sentry 有很多功能可以发送邮件,禁止,批准注册,......

我在我的 API 服务器上成功地从我的客户端(带有 Guzzle 插件的 Laravel)创建了连接,但我无法保持 Sentry 会话。好不好?我如何知道 API 服务器上我的用户的权限、组或任何内容。对于每个调用 API,我都会发送 access_token,但对于 OAuth2 来说已经足够了。我不知道如何保持 Sentry 会话,例如:

我以版主权限用户登录,并向 API 发送新请求以获取一些版主信息,我不知道是版主还是管理员或什么,因为我没有 Sentry 会话。

也许 oauth:scope1,scope2 就足够了,也许我不需要 Sentry,但我没有 Sentry 功能(看这篇文章的开头)。

我相信我的问题是微不足道的,但我不知道如何解决这个问题。我一点主意都没有 :(

4

1 回答 1

5

您的问题是您对 Oauth2 的理解存在缺陷。Oauth2 用于身份验证而不是授权

通常使用 Oauth2,您将拥有三个服务器:

  1. 身份验证服务器(我是我所说的我吗?)
  2. 授权服务器(我能做什么?)
  3. 资源服务器(您的 API)

现在,服务器 2 和 3 可以(并且通常是)相同的东西,在这种情况下,它很可能是您要查询的模型。

发生的情况是您的用户首先与身份验证服务器交谈并说,我是这个用户
如果身份验证服务器相信它们,它们会被颁发一个令牌,用于对您的资源服务器的请求(中间还有几个步骤,但您的问题似乎暗示您理解这些)。

当使用访问令牌向资源服务器发出请求时,资源服务器会询问身份验证服务器“这个人是谁?” 验证令牌。

(此时,您将收到来自身份验证服务器的令牌的链接 ID,这是您的应用程序的其余部分将知道用户的内容)。

资源服务器然后询问授权服务器“这个人能做什么”或“这个人能做动作x吗?”

资源服务器从授权服务器接收授权或拒绝响应,然后提供响应或抛出拒绝访问响应。

希望这可以帮助您了解 sentry 和 oauth2 之间的区别。

于 2014-04-07T00:39:19.463 回答