2015-09-28 134 views
1

我在做什么?
我正在尝试构建用于在线预订航班的API,以便其他旅行社可以使用该API。它具有搜索航班,显示搜索结果,预订航班和在线支付的功能。因此,对于我计划使用oAuth的授权。当用户访问旅行社网站时,他们可以搜索,预订航班并且可以进行支付。在这里,他们不必为搜索航班和预订进行认证,但是通过使用第三方进行支付。我正在尝试做的是,当用户使用api时,他们不需要身份验证,但我们应该授权用户来自有效站点或没有,因此我正在使用oauth grant type client credentialsLaravel 5.1:如何使用oauth2-server-laravel?

我做了什么?
我正在尝试使用oauth的laravel包lucadegasperi/oauth2-server-laravel。我已成功在我的项目中安装了该软件包,并根据此处提供的信息完成了配置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,以便我们可以安全地授权 网站?

回答

0

您可以编写一个包装的应用程序将包含CLIENT_IDClient_secret。并且您的包装应用程序也会管理Access令牌。

思路是:

每当任何请求都将来到你的包装,那么它会看,如果没有在高速缓存中存在的任何访问令牌,如果是的话,采取的令牌,让您的应用程序的最终要求并根据您的令牌获取数据。

如果令牌在缓存中不存在,则Wrapper应用会根据您的Client_id和Client Secret发出令牌请求,并为下一次调用获取令牌和存储令牌。

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