用户登录

在 SurrealDB 里可以定义作用域,设置一下在这个作用域下的用户的注册还有登录,用户可以登录到这个作用域。配置数据表还有字段权限的时候可以使用作用域,还有用户的身份验证相关的信息。

复制一份请求,名字是定义作用域。

用一下 DEFINE SCOPE 定义一个作用域,名字可以随便起,比如 authenticated,再用一下 SESSION ,它的后面是会话的有效时长,比如 7d,表示七天。

SIGNUP

然后用一下 SIGNUP ,配置一下在这个作用域下的用户的注册。里面用 CREATE user,创建一条 user 数据,在 CONTENT 后面设置一下用户数据 ,一个 name 属性,值是 $name,逗号分隔一下,再添加一下 password,它的值是 crypto::argon2::generate($password) 。 argon2 是一种 hash 数据用的方法。

这里的意思就是,当有用户在 authenticated 这个作用域注册的时候,会在 user 这个数据表里创建一条数据记录,这条数据的 name 字段的值就是注册的时候提供的 name,password 字段的值是用 argon2 这种 hash 方法处理之后的在注册的时候提供的 password。

SIGNIN

下面再配置一下 SIGNIN,表示用户登录。请求用户登录可以在 user 数据表里查询出要登录的这个用户,对比一下用户的名字,还有密码,如果匹配,就给用户签发一个令牌。

要执行的查询,用一下 SELECT * FROM user,用 WHERE 设置条件,条件是 name 等于 $name,AND 并且,再对比一下密码,对比密码的可以用一下 crypto::argon2.compare,先提供用户的 password,然后是用户登录的时候提供的 $password,这个 $password 是一个参数,参数的值就是登录的时候提供的 password。

INFO

然后再用 INFO FOR DB; 查看一下数据库信息。执行一下。在返回的数据库信息里面,会有一个 sc,表示数据库里的 scope,它里面有个 authenticated。这里定义了用户的注册还有登录。

刚才定义的 Scope 属于 ninghao 这个命名空间下面的 xuanwu 这个数据库。

定义作用域并配置用户的注册与登录(DEFINE SCOPE, SIGNUP, SIGNIN)《 SurrealDB 多模型数据库:权限管理 》

统计

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

社会化网络

关于

微信订阅号

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