【问题标题】:Build a REST API available to authorized apps only (like Facebook) with Laravel使用 Laravel 构建一个仅适用于授权应用程序(如 Facebook)的 REST API
【发布时间】:2016-06-19 05:47:52
【问题描述】:

我正在使用 Laravel 构建一个 REST API,现在我有一个类似的 URL

api.example.com/posts/3/comments

现在我想知道如何保护此 API,因为正如现在所做的那样,任何尝试在此 URL 上发出 GETPOST、... 请求的人都会得到积极的结果。

我希望此 API 仅可用于授权应用(如 Facebook API)。目前,这些应用只是我的网站和 iOS 应用。

我正在考虑创建一个表applications 来存储应用程序的密钥。但我不知道如何在不发布密钥的情况下对应用进行身份验证(这显然是不安全的)。

有什么建议吗?谢谢。

【问题讨论】:

  • 当我用 Google protect a rest api 搜索时,我会得到很多结果,例如stackoverflow.com/questions/14094529/how-to-protect-restful-api?
  • 我也用谷歌搜索了它并找到了教程,但它们都是关于验证用户而不是应用程序的。
  • 对于 Laravel,您可以实现特定的中间件并在路由或控制器级别实现它们。不过,我不知道您对应用程序的身份验证与用户有何不同,但所涉及的逻辑不应该有太大的不同 - 像 api-guard 这样的解决方案可能是一个解决方案(当然,您可以自己实现.)
  • 在 CORS 标头中限制域
  • @Ciccio 用户认证和App认证的区别在于,用户可以将他的密码存储在他的脑海中,而Web应用程序则不能(任何人都可以读取Javascript代码)。

标签: rest security laravel


【解决方案1】:

我建议您使用JWT 之类的内容。使用它,您可以在设备上本地创建和存储令牌,然后每次有人调用服务器时,您都会检查令牌并确保他们是他们声称的身份。如果愿意,您可以存储令牌以备到期。它们通常用于无状态应用程序,因此您需要摆脱服务器会话的概念。您可以使用Middlewares 过滤进入您的应用程序的 HTTP 请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2011-10-14
    • 1970-01-01
    • 2018-01-18
    相关资源
    最近更新 更多