我想通过安古拉杰建立一个水疗中心,并使用拉拉作为水疗的api。通过阅读拉里护照的文件,我发现我需要为此目的使用隐式补助。但我不太清楚它应该如何从前到后工作。我只想拥有用用户名和密码登录用户的能力,然后使用它,我需要对这个过程做一些澄清。这就是我想要的:
但是我现在所看到的与我所期望的略有不同。
更让我困惑的是,我似乎需要为每一个拉拉用户提供一个新的客户。我希望有一个oauth客户代表我的水疗中心,可以访问拉拉用户。请你澄清一下好吗?
发布于 2018-04-21 17:44:07
如果要在JavaScript应用程序中使用密码授予,则必须使用服务器端代理来进行身份验证,并同时保护client_secret和刷新令牌。
代理管理整个api通信过程或仅管理身份验证部分,并返回一个短暂的access_token。身份验证状态通过服务器会话进行管理。根据您的实现,必须保护某些请求不受CSRF攻击的影响,因为大多数实现都使用cookie。
否则,使用隐式授予验证您的应用程序。(有关更多信息,请参见下面的链接)
https://auth0.com/docs/api-auth/tutorials/implicit-grant
https://oauth2.thephpleague.com/authorization-server/implicit-grant/
您可以使用静默身份验证刷新访问令牌,如下所述:https://auth0.com/docs/api-auth/tutorials/silent-authentication
注意:在大多数情况下,刷新令牌不会过期,这对于前端存储来说是一个很大的不。
客户的秘密应该永远保密。
编辑(2020)
现在是2020年,网络安全领域发生了很大变化。
已知存在带有隐式授权的漏洞,特别是因为您的access_token可以在飞行途中被拦截并重定向到另一台服务器。现在建议使用PKCE流而不是隐式授予
关于这个OAuth 2.0隐式流死了吗?,Okta有一篇非常好的文章和视频
Laravel还发布了一种简单得多的替代拉勒维尔桑克姆,我建议您看看它,因为它使用了仅用于访问令牌存储的安全HTTP,并且还实现了开箱即用的CSRF保护。
https://stackoverflow.com/questions/48182566
复制相似问题