Laravel 5.1:如何使用oauth2-server-laravel?

时间:2015-09-28 11:18:52

标签: php api laravel oauth oauth-2.0

我想做什么?
我正在尝试为在线预订航班建立api,以便其他旅行社可以使用该API。它具有搜索航班,显示搜索结果,预订航班和在线支付的功能。因此,对于授权,我计划使用oAuth。当用户访问旅行社网站时,他们可以搜索,预订航班并可以付款。在这里,他们不需要进行身份验证以搜索航班和预订,但是使用第三方付款。我想要做的是,当用户使用api他们不需要身份验证但我们应该授权用户来自有效网站,所以我使用oauth grant type client credentials

我做了什么?
我正在尝试使用laravel包lucadegasperi/oauth2-server-laravel作为oauth。我已成功在我的项目上安装软件包,并根据此处https://github.com/lucadegasperi/oauth2-server-laravel/wiki提供的信息完成配置。我已经测试过使用chrome扩展程序postman获取访问令牌。 enter image description here

我对此感到困惑?
如果我在客户端共享client_id和client_secret,那么任何其他用户都可以使用该客户端ID和客户端密钥并使用我们的api。如何在用户提交搜索按钮后生成访问令牌,并将该令牌用于其他流程,如显示搜索结果,预订等。

所以,我的问题是

  1. 我使用正确的授权类型进行授权吗?如果没有,哪个会 适合这个吗?

  2. 如何使用client_id和client_secret以便我们进行授权 网站安全吗?

1 个答案:

答案 0 :(得分:0)

您可以编写一个包含 Client_Id Client_secret 的Wrapper应用程序。您的包装器应用程序也将管理Access令牌。

想法是:

每当有任何请求到达您的包装器时,它将查看缓存中是否存在任何访问令牌,如果是,则接受该令牌并向您的应用程序发出最终请求并根据您的令牌获取数据。

如果Token不存在于Cache中,则Wrapper应用程序将根据您的Client_id和Client Secret发出令牌请求,并获取令牌并存储令牌以进行下一次调用。

通过这种方式,您的应用程序不会公开您的凭据和公开的令牌。