【问题标题】:Restrict API access only for my authorized client applications仅对我的授权客户端应用程序限制 API 访问
【发布时间】:2019-07-15 03:32:44
【问题描述】:

我的客户端应用程序是一个使用 REACT-REDUX 构建的 SPA,后端 API 是带有 express 框架的 nodejs。

问题是在我的客户端应用程序中,人们无需登录即可访问信息 那么如何在不实际登录到我的服务器 API 的情况下验证我的客户端应用程序。

我尝试使用 Auth0,但对于单页 Web 应用程序身份验证仅通过登录完成,有一个机器对机器的选项,但这不适合我的情况,因为我的客户端应用程序是静态 Web 应用程序,没有服务器来保存客户端身份证。

我研究了几篇文章来解决这个问题,其中大多数建议隐式授权适合我的情况,如果它是真的如何在我的客户端和服务器中实现隐式授权。

【问题讨论】:

    标签: node.js reactjs express oauth oauth-2.0


    【解决方案1】:

    我使用JWT 实现了这一点

    在成功登录时为客户端提供一个 JWT 令牌,他每次需要使用 API 时都必须在标头中使用该令牌。

    然后每个其他请求都使用中间件来验证此令牌,如果有效则让他继续,否则发送身份验证失败响应

    【讨论】:

    • 但是在我的应用程序中我不能强制用户在没有登录的情况下登录我想访问 API 并向用户显示信息。
    • 硬编码应用程序的令牌并将其用于所有 api 调用,但如果有人有权访问令牌,他可以访问 api,否则您可以在用户首次加载时动态创建新令牌网络应用程序并保存在 cookie 中
    • 这样 API 又是易受攻击的,任何人都可以看到令牌!
    • 您可以设置2种token,一种为所有用户正常用于不重要的数据,另一种为后端生成的用于访问受限数据的token
    猜你喜欢
    • 2015-07-17
    • 1970-01-01
    • 2021-05-19
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多