相关疑难解决方法(0)

为什么OAuth v2同时具有访问权限和刷新令牌?

OAuth 2.0协议草案的4.2节指出授权服务器可以返回a access_token(用于向资源验证自己)以及a refresh_token,它纯粹用于创建新的access_token:

https://tools.ietf.org/html/rfc6749#section-4.2

为什么两者都有?为什么不只是做到access_token最后只要refresh_token没有refresh_token

security oauth access-token refresh-token

603
推荐指数
11
解决办法
20万
查看次数

JWT(JSON Web Token)自动延长到期时间

我想对我们的新REST API实现基于JWT的身份验证.但是由于在令牌中设置了到期,是否可以自动延长它?如果他们在那段时间内积极使用该应用程序,我不希望用户在每X分钟后需要登录.这将是一个巨大的用户体验失败.

但是延长过期会创建一个新令牌(旧令牌在到期之前仍然有效).每次请求后生成一个新令牌听起来很愚蠢.当多个令牌同时有效时,听起来像是一个安全问题.当然,我可以使用黑名单使旧的旧的无效,但我需要存储令牌.JWT的一个好处就是没有存储空间.

我发现Auth0是如何解决它的.它们不仅使用JWT令牌,还使用刷新令牌:https: //docs.auth0.com/refresh-token

但同样,要实现这一点(没有Auth0),我需要存储刷新令牌并保持其过期.那么真正的好处是什么?为什么不只有一个令牌(不是JWT)并在服务器上保持过期?

还有其他选择吗?使用JWT不适合这种情况吗?

security authentication api node.js jwt

465
推荐指数
10
解决办法
17万
查看次数

使用 React hooks、.NET Core Web API 和 SQL Server 实现身份验证和授权

我有一个使用 React hooks、SQL Server 数据库和 .NET Core 3.1 Web API 构建的应用程序。我真的很难理解所有活动部件之间的关系。我想避免重新发明轮子并利用现有的库和框架。根据我所学到的知识,JWT 似乎是通往这里的方法,但它只是有点令人困惑。这是我的要求:

  1. 创建帐户并使用自定义网站帐户登录/注销或使用 Google/Facebook/Microsoft/等。(我可以从其中一个开始,但不想把自己限制在里面并重写大量的东西来添加另一个)
  2. 利用现有项目中的.NET Core Identity来处理SQL Server数据库中的用户、角色等。
  3. 使用 React hooks 模式(如果必须的话,我可以通过翻译类组件来一瘸一拐)

我认为我在所有的解耦中迷失了(这通常是一件好事!)我看到有关带有虚拟后端的 React 的文章,然后我迷失了。我看到有关 .NET Core 的帖子,但不知道如何将它与 React 一起使用。从概念上讲,大部分内容都是有意义的,但我还没有找到一个地方可以帮助我从头到尾理解代码应该是什么样子。

这是我的问题!

  1. React 前端应用程序和 React auth 服务是同一件事吗?他们可以吗?他们一定是吗?
  2. JWT字符串是在React端还是.NET端生成的?最好的图书馆?
  3. MS Identity Server 如何(或者是否?)符合这个等式?
  4. 尽管看了大约 100 篇文章,但我并不完全理解刷新令牌的概念。刷新令牌是 100% 必要的吗?使用/不使用它们的好处/缺点?

有很多事情需要整理,我只是希望有人能帮助我简化。

authentication jwt reactjs asp.net-identity .net-core

9
推荐指数
1
解决办法
8418
查看次数