用户登录

在“测试用户权限”这里,执行一下 SELECT * FROM $token; 这个 $token 里包含的就是当前用户的令牌里的主体数据,也就是在签发令牌的时候,放在令牌 payload 里的东西。

因为发送这个请求的时候(查看Timeline),在请求的头部里包含了一个 Authorization 头部,它的值是 Bearer 空格,然后是用户的令牌。SurrealDB 可以从 Authorization 这个头部里提取用户的令牌,验证它的有效性,获取到令牌的主体数据,也就是刚才我们看到的那些东西。

DB 是数据库,NS 是命名空间,SC 是作用域,iss 是令牌的签发者。ID 是用户的 ID,SurrealDB 会根据这个用户的 ID 找出用户数据。这些数据会放在 $auth 这个变量里。

权限

要查看 $auth 变量里的值,我们需要先定义一个 TABLE 权限,DEFINE TABLE user PERMISSIONS FOR select WHERE id = $auth.id。FOR create, update, delete NONE;

测试

在 “测试用户权限” 这里,执行 SELECT * FROM $auth; 返回的结果是 $auth 变量里的东西,它其实就是当前用户相关的数据,也就是 user 数据表里的一条特定的数据记录。

$scope

再试一下 SELECT * FROM $scope; 得到结果是当前用户登录到的作用域,这里就是 authenticated。

$session

下面再查看一下 $session 这个变量,SELECT * FROM $session; 这里会显示更详细的关于当前用户的相关信息,比如用户的 ip 地址,作用域,用户的 id,还有 token 的主体数据。

查看 $token,$auth,$scope 与 $session《 SurrealDB 多模型数据库:权限管理 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点