我正在考虑使用Passport在Laravel 5中开发一个完整的身份系统。
以下是我的要求:
我尝试过的事情:
我知道OAuth 2.0不是身份验证协议。相反,它使用称为授权的东西,但我们可能会使其工作以支持身份验证协议here。这是Laravel护照支持的吗?
答案 0 :(得分:0)
这就是我所说的面向资源的方法,其中所有客户端(app1,app2 ......)都想知道天气请求用户是否有权访问资源...
在这里,我们需要将所有身份验证逻辑转移到oauth,并使我们所有的请求应用依赖于OAuth。这样,如果用户请求应用程序访问资源,那么:
令牌存在然后应用程序将请求oauth服务器验证给定令牌,如果发现为true,则app将提供对用户的访问权。
如果令牌不存在,那么您可以通过询问凭证解决它,并且应用会将用户数据传输到oAuth服务器并验证它是否使用令牌进行响应。
根据我的经验,我用它来实现这种方法,我认为Laravel Passport是一个在验证系统之上的抽象层。你可以随心所欲地塑造它。可以进行更多的增强和改进,但这可以作为SSO之上的基本层。
答案 1 :(得分:0)
您可以使用护照来实现这一目标,但是您对示例是正确的,因为步骤不多或不多。
您可以在App1和App2端创建一个新的中间件,该中间件与identity.mysite.com通信并获取用户数据(令牌,作用域等ID),然后它将验证令牌是否有效。
在护照服务器端,您需要一个端点来返回令牌是否有效以及任何其他信息。
为避免对护照服务器提出过多请求,我建议创建一个获取访问令牌TTL的服务,并将其设置为用户数据在App1或App2上的缓存时间。