小编Kar*_*ash的帖子

无效使用非静态数据成员

class matrix
{
   public:
     int m;
     int n;
     int mat[m][n];
};  
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

[错误]:无效使用非静态数据成员'matrix :: n'
在声明静态时:

class matrix
{
   public:
     static int m;
     static int n;
     int mat[m][n];    //Error
};  
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

[错误]:数组绑定在']'标记之前不是整数常量
请告诉我这些错误的含义以及如何解决此问题.

c++ oop class

2
推荐指数
1
解决办法
1724
查看次数

为什么要在服务器数据库中存储 JWT 的刷新令牌?存储访问令牌会更好吗?

我目前正在构建 Node.js 应用程序并尝试使用 JWT 来处理会话。在我见过的每个实现中,数据refresh-token都存储在快速数据库中,例如redis. 当令牌过期时,客户端发送 来refresh-token获取新的access-token,然后服务器检查 是否refresh-token在数据库中,然后生成新的令牌。

但既然refresh-token必须是服务器生成的,无法篡改,而且我们还可以检查是否过期,那为什么还要存储呢。如果是的logout话,我们不能只将user_id已登录的人存储在数据库中,而不存储refresh-token.

我也在考虑存储最新的而access-token不是refresh-token作为redis. user_id原因是access-token只有当前一个过期时我们才会生成新的。所以下面的情况不可能发生,

  1. 用户登录,获取access-tokenrefresh-token
  2. 立即刷新他们的令牌,同时前一个令牌仍然有效。
  3. 注销并使用旧的访问令牌。

由于大多数实现仅将access-token客户端在注销期间提供的内容列入黑名单,因此我相信如果客户端使用 REST API,则这种情况是可能的。

那么存储 的用途是什么refresh-token,存储 的access-token反而会有任何好处。有关应用程序的更多信息,

  1. 我用于redis登录用户,并列入黑名单access-token(在注销期间提供)。
  2. 我将refreshaccess令牌存储在 httpOnly cookie 中,并将access令牌作为不记名令牌发送。
  3. refresh-token在刷新访问令牌时在 POST 正文中发送。
  4. 我没有使用https

redis node.js express jwt

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

标签 统计

c++ ×1

class ×1

express ×1

jwt ×1

node.js ×1

oop ×1

redis ×1