【问题标题】:Verify that a user can only query his own data/information验证用户只能查询自己的数据/信息
【发布时间】:2017-04-10 12:59:24
【问题描述】:

o/

我正在开发一个较小的应用程序,目前进展顺利。我和一个朋友谈过这件事,他突然让我意识到了一些事情。我如何确保用户只能从云中的数据库中查询自己的数据?

这是一个非常简单的应用程序,您可以在其中创建用户并制作一些个人购物清单。

我考虑了几个选项,但我不确定正确的方向是什么 - 或者即使其中任何一个是正确的。

  1. 用户名/ID 和密码存储在本地并附加到请求中,并且每次都检查数据库。
  2. 生成一个令牌,将其保存在数据库中并作为“活动”会话在本地存储,每次发送请求时,都会将令牌附加到请求中并进行检查。
  3. ...?

很抱歉,如果我放置了这个主题有错误的标签,因为我不能 100% 确定它们应该放在哪里。

【问题讨论】:

    标签: database session web-applications login


    【解决方案1】:

    嗯,从您的描述来看,您正在开发一个“无后端”应用程序。如果是这种情况,我建议您查看Firebase,因为它会解决您对身份验证和用户授权的所有担忧。

    如果您想使用更自定义的方法,只需考虑始终不建议将用户名和密码附加到请求中,因为您使用令牌也是不必要的。

    现在,回到这个问题,我将向您提供与使用身份验证令牌并因此需要后端的上下文相关的愿景:

    1. 当您登录用户时,您会生成一个令牌,该令牌是用户 ID 的函数
    2. 每个用户请求都必须包含该令牌
    3. 后端可以从附加的令牌中提取提交请求的用户的id
    4. 策略或特定条件将检查要检索的数据是否必须属于已提取 id 的用户。

    希望对你有帮助

    【讨论】:

    • 我确定如果我不清楚,我确实有一个后端数据库。我如何制作后端可以从中获取 id 的令牌?而且我不需要动态令牌,如果用户有一段时间没有登录,它会更新吗?
    • 这取决于您所依赖的技术堆栈。例如对于 NodeJS,有 [PassportJS] (passportjs.org),但通常这是很多框架提供的功能
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 2021-02-22
    • 2019-06-01
    • 2015-01-04
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    相关资源
    最近更新 更多