首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-隐性赠款

问-隐性赠款
EN

Stack Overflow用户
提问于 2018-01-10 07:47:55
回答 1查看 3.3K关注 0票数 1

我想通过安古拉杰建立一个水疗中心,并使用拉拉作为水疗的api。通过阅读拉里护照的文件,我发现我需要为此目的使用隐式补助。但我不太清楚它应该如何从前到后工作。我只想拥有用用户名和密码登录用户的能力,然后使用它,我需要对这个过程做一些澄清。这就是我想要的:

  1. 使用用户名和密码通过html/javascript登录到laravel (角),通过ajax请求。
  2. 获取与api通信的访问令牌。
  3. 在spa中执行一些操作,使用访问令牌触发对api的请求。
  4. 响应该请求从api中获取数据。

但是我现在所看到的与我所期望的略有不同。

  1. 通过默认的刀片登录表单登录到laravel (尚未使用ajax创建)
  2. 重定向到oauth/像这样自动化 路由:get(‘/redirect’){ $query = http_build_query( 'client_id‘=> 'client-id’、'response_type‘=>’令牌‘、’范围‘=>’);返回重定向(‘http://your-app.com/oauth/authorize?'.$query’); });
  3. 重定向显示的是批准或拒绝授权请求屏幕(这不是我所期望的)
  4. 当我批准请求时,浏览器将我重定向到带有访问令牌的oAuth客户端数据库条目中指定的重定向uri。我应该能做到。

更让我困惑的是,我似乎需要为每一个拉拉用户提供一个新的客户。我希望有一个oauth客户代表我的水疗中心,可以访问拉拉用户。请你澄清一下好吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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保护。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48182566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档