【问题标题】:Do I need to keep a session, when using OAuth and a mobile client application?使用 OAuth 和移动客户端应用程序时,是否需要保持会话?
【发布时间】:2020-01-12 00:24:18
【问题描述】:

我是 OAuth 和不同身份验证机制的新手,有些概念有点弱(我来自移动世界,而不是网络世界)。很抱歉提出了一些愚蠢的问题。

我想创建一个移动应用程序和一个将 REST API 公开给移动应用程序的后端。 为了授权应用代表用户访问 REST API,我将使用 OAuth 流,因此最后,我的应用将使用访问令牌来访问 BE 资源。

从我的 POV 来看,这足以实现我的所有目标:

  • 移动应用调用端点https://example.com/user
  • BE 接收带有访问令牌的请求
  • BE 调用 OAuth 自省端点以了解访问令牌属于哪个用户。
  • BE端点向移动应用返回用户数据

对我来说这似乎没问题,但我看到有些人将此机制与 cookie 结合使用,以进一步识别使用会话的用户。

我的用例需要一个会话吗?它有什么好处?

我的 POV 会话可能仅在拥有基于浏览器的应用程序时有用。基于浏览器的应用程序是否同时使用访问令牌和会话?还是会话映射到服务器端的访问令牌?

谢谢!

【问题讨论】:

    标签: authentication mobile oauth oauth-2.0 authorization


    【解决方案1】:

    默认情况下,OAuth 中没有 cookie 或会话(除非您使用的是服务器端 Web 应用程序)。作为第一步,我会保持上述内容 - 这看起来非常标准。不过,将会话建模到您的 API 接口中可能很有用。这将允许您的后端区分运行 2 个 UI 实例的用户 - 并了解哪些 API 请求来自哪个 UI 实例。访问令牌并不能完全为您提供这一点 - 因为访问令牌会在一段时间后刷新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 2015-11-24
      • 2021-12-09
      • 2019-09-22
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多