【问题标题】:How to allow api access to android or ios app only(laravel)?如何仅允许 api 访问 android 或 ios 应用程序(laravel)?
【发布时间】:2015-12-22 08:06:54
【问题描述】:

我正在 laravel 中实现一个 api。

我想要的是我的 api 不应该从任何地方访问,除了从 android/ios 应用程序。我用谷歌搜索并知道我可以使用 API KEY。

但我不确定它是否正确。

目前使用 OAuth2 进行用户身份验证。

请帮忙。

【问题讨论】:

    标签: php api security laravel


    【解决方案1】:

    您要做的是为每个用户创建一个令牌,将其保存在客户端的设备中,并在客户端发出的每个请求中对其进行验证。

    所以基本上你想要:

    • 为用户表中的令牌创建一个
    • 在用户注册时生成令牌
    • 创建一个登录路由,以便用户使用他的电子邮件、密码登录,然后他将取回令牌以存储在设备中
    • 制作一个中间件,用于检查每个请求中的令牌(登录除外)

    我写了一篇你想要的完全一样的文章

    https://medium.com/@alhasaniq/how-to-add-token-based-authentication-to-laravel-app-s-to-use-in-api-s-1a0e45f9106#.15e3f9quu

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • @AlhasanIQ 感谢您的回复。我看到了你的文章,它提供了很多信息,但我的问题基本上是如何过滤掉仅来自 android 或 iOS 的请求?
    • 您可以通过 2 种方式做到这一点:1. 由用户代理(如果它应用于移动设备的 http 请求)使用此 $request->header('User-Agent'); 2. 通过发送类似 'device' : 'ios 的内容在每个从客户端到服务器的请求,否则您无法真正识别请求
    • 如何使用apikey。假设我将 api 密钥提供给应用程序开发人员,并且每次开发人员提出请求时,他也会传递 api 密钥,并且我们可以从 api 密钥检测客户端。只是一个抽象的想法。我们可以使用它吗?
    • 是的,您可以根据喜好在令牌中添加 _ios_android 之类的内容
    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2021-12-10
    相关资源
    最近更新 更多