gpt4 book ai didi

authentication - 匿名用户的访问 token - JWT

转载 作者:行者123 更新时间:2023-12-03 11:12:48 26 4
gpt4 key购买 nike

我一直在研究切换到社区支持的授权系统,而不是我建立的系统。我犯了重建轮子的错误,而不是实现利用最佳实践的社区驱动系统。但是,我找不到任何使用 JWT 而不是身份验证的授权示例。

我愿意接受所有建议。据我所知,JWT 和 OAuth 要求客户端拥有现有帐户并进行身份验证才能接收 token 。但是,我的应用程序中需要以下功能。

  • 匿名用户应该获得一个访问 token ,并且能够获取一些资源。我应该能够识别这些 guest 客户并为他们存储 session 数据。
  • guest 用户应该能够登录,然后可能会获得一个新 token ,或者更新他们的访问级别以请求受限资源并执行仅针对成员的操作。

  • 我将使用 Laravel 5.1 和 AngularJS 构建这个项目。非常感谢所有建议。我真的可以在这方面使用一些指导,简单的文档链接就足够了。

    最佳答案

    我当然理解您描述的用例 - 但我认为匿名 token 实际上并没有增加任何安全性。这是因为一个完全匿名的用户将能够请求一个匿名 token 而无需首先表明自己的身份(否则它不会是匿名的)。因此 - 必须假定此 token 由您的应用程序的任何和所有用户拥有(包括具有恶意意图的用户)
    虽然我不熟悉 Laravel - 实现此类功能的一般方法可能类似于:
    方法

  • 找到一个允许在登录前收集用户信息的 session 库(我很确定大多数 session 库都会促进这一点)
  • 为每个访问应用程序的用户创建一个 session (在此您可以开始分析他们,存储有用的信息等)
  • authenticated 之间创建一个分界线端点和 anonymous端点,需要用户 session 中存在的有效访问 token 来检索/发送数据到 authenticated 的端点
  • 当用户“登录”时,您可以使用您选择的身份验证提供商执行 OAuth2.0/OIDC 流程,最终检索 token 。
  • 将 token 存储在用户的 session 中(实际上是“升级”他们的访问权限),以便他们下次尝试点击 authenticated他们有权访问的端点

  • 一般注意事项
  • 确保对 session 数据使用持久存储(我通常会使用 Redis 之类的东西),以便可以在应用程序实例之间共享 session 数据)
  • 关于authentication - 匿名用户的访问 token - JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31184594/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com