我从githhub的API服务器使用了OAuth2代码:https://github.com/lucadegasperi/oauth2-server-laravel
我想使用Sentry,而不是使用标准的Laravel Auth,因为Sentry具有许多用于发送邮件,禁止,批准注册,...的功能。
我在API服务器上成功从客户端(带有Guzzle插件的Laravel)创建了连接,但无法保持Sentry会话。可以吗?如何知道API服务器上的权限,组或我的任何用户。对于每个调用API,我都会发送access_token,但对于OAuth2而言已足够。我不知道如何保持Sentry会话,例如:
我以主持人权限用户身份登录,并且向API发送新请求以获取一些主持人信息,因为我没有Sentry会话,所以我不知道它是主持人还是管理员或其他人。
也许oauth:scope1,scope2就足够了,也许我不需要Sentry,但是我没有Sentry功能(请看这篇文章的开头)。
我相信我的问题微不足道,但是我不知道如何解决此问题。我一点主意都没有 :(
您的问题是您对Oauth2的理解存在缺陷。Oauth2用于身份验证而不是授权。
通常,使用Oauth2时,您将拥有三台服务器:
现在,服务器2和3可以(并且经常是)相同,在这种情况下,您可能会查询一个模型。
发生的情况是您的用户首先与身份验证服务器交谈,然后说,我是该用户。
如果身份验证服务器认为它们是颁发给令牌的,则可以在对您的资源服务器的请求中使用令牌(之间还有其他几个步骤,但是您的问题似乎意味着您理解这些内容)。
当使用访问令牌向资源服务器发出请求时,资源服务器会询问身份验证服务器“此人是谁?” 验证令牌。
(此时,您将从身份验证服务器收到指向令牌的链接ID,这是您应用程序的其余部分所知道的用户的身份)。
然后,资源服务器询问授权服务器“此人可以做什么”或“此人可以执行操作x?”。
资源服务器从授权服务器接收授予或拒绝响应,然后提供响应或抛出拒绝访问响应。
希望这可以帮助您了解哨兵和oauth2之间的区别。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句