使用证书

时间:2017-04-20 22:51:48

标签: laravel apache ssl laravel-passport

我有一个使用laravel编写的api项目,它使用护照生成api令牌。这些令牌用于区分谁正在访问我的路由,以便返回适当的数据。所有这一切目前都有效。

令牌生成屏幕和api路由都包含在同一个项目中。所以点击:

example.com

带您进入登录屏幕。登录后,您将生成一个令牌,然后在后续的api路由请求中使用该令牌。在发出以下请求时包含令牌:

example.com/api/route1

example.com/api/route2/id1

在项目结束时,需要提高登录页面的安全性。我想生成一个我提供给用户的客户端证书,这是访问登录页面所必需的。

如何在不影响我如何设置api路由的情况下执行此操作?换句话说,我希望为这样的用户提供一个工作流程:

  • 将证书导入浏览器
  • 现在已安装证书,用户可以访问登录页面
  • 登录,生成令牌
  • 使用令牌对api路由进行编程调用。这些调用不应要求登录页面证书。

这可能吗?或者,为登录添加客户端证书也会影响api路由吗?

感谢您的任何建议。

2 个答案:

答案 0 :(得分:0)

您可以在中间件周围包装需要证书的路由。此中间件应检查证书是否已安装,否则将其重定向到页面。

查看文档

https://laravel.com/docs/5.4/routing#route-group-middleware

https://laravel.com/docs/5.4/middleware#assigning-middleware-to-routes

答案 1 :(得分:0)

您还可以针对特定操作使用大门和政策:https://laravel.com/docs/5.4/authorization

让我们说用户可以更新帖子,但不能删除它。这些政策对它有帮助