用于什么是"单点登录"表以及为什么需要此列列表?

Ale*_*ich 3 database single-sign-on

我正在查看一个模式,并试图弄清楚这个表可以用于什么:

CREATE TABLE "single_sign_ons" 
"token" VARCHAR(64) NOT NULL, 
"ip" VARCHAR(32) NOT NULL, 
"expired_at" DATETIME NOT NULL, 
"one_time" VARCHAR(64), 
"created_at" DATETIME, 
"updated_at" DATETIME, 
"user_id" INTEGER, 
PRIMARY KEY("token"));
Run Code Online (Sandbox Code Playgroud)

什么是"单点登录",为什么此表的作者为此目的包含这些列?

bet*_*hmi 5

它是用户登录会话的持有者.我相信当用户登录以验证其会话仍处于活动状态时,将使用该表,并允许他们访问不同的服务器/站点而无需再次登录.

我假设在第一次登录时,用户的会话将被认为是新的,因此将查询用户的凭据.然后在该表中输入一行,其中包含用户的ID,IP地址,创建日期和令牌.然后,此令牌将附加到用户的会话,并在后续登录中使用.

然后,其他进程将接收令牌作为通信的一部分,并检查此表以确保会话仍然有效.每次检查会话时,都会更改更新字段,以便知道用户处于活动状态.

还有更多的逻辑会定期检查表并使最近没有更新的任何会话行到期.无论这个系统是什么"足够".然后,使用令牌的后续访问请求将注册到期,查询凭据并使用新令牌建立新行.