PHP中ThinkPhp框架的token怎么使用

来源:undefined 2025-01-01 03:38:40 1033

一、token在ThinkPhp框架的使用

1. 首先在数据库的 users 表中添加两个字段token、time_out

token 用于存储用户的 token

time_out 用于设置用户 token 的过期时间

2.创建函数

1

checkToekn($token)

登录后复制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

public function checkToken($token)

{

$user = new ppindexmodelUsers();

$res = $user->field(time_out)->where(token, $token)->select();

if (!empty($res)) {

//dump(time() - $res[0][time_out]);

if (time() - $res[0][time_out] > 0) {

return 90003; //token长时间未使用而过期,需重新登陆

}

$new_time_out = time() + 604800; //604800是七天

$res = $user->isUpdate(true)

->where(token, $token)

->update([time_out => $new_time_out]);

if ($res) {

return 90001; //token验证成功,time_out刷新成功,可以获取接口信息

}

}

return 90002; //token错误验证失败

}

登录后复制

3.创建函数

1

douserLogin($username,$password)

登录后复制

用于验证用户名密码, 并登陆, 返回 token 信息。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

public function douserLogin()

{

$user = new ppindexmodelUsers();

$userisset = $user->where(username, $username)->find();

if ($userisset == null) {

return json_decode({"user":" . $username . ","code":"400","msg":"用户不存在"});

} else {

$userpsisset = $user

->where(username, $username)

->where(password, sha1(md5($password)))->find();

if ($userpsisset == null) {

return json_decode({"user":" . $username . ","code":"401","msg":"密码错误"});

} else {

//session(user, $username);

$token = $this->makeToken();

$time_out = strtotime("+7 days");

$userinfo = [time_out => $new_time_out,

token => $token];

$res = $user->isUpdate(true)

->where(username, $username)

->update($userinfo);

if ($res) {

return json_decode({"user":" . $username . ","toekn":.$token. "code":"0","msg":"登录成功"});

}

}

}

}

登录后复制

二、Token的概念

token是客户端频繁向服务器端请求数据,服务器频繁的去数据库查询用户名和密码判断用户名和密码正确与否,并作出相应的提示,在这样的背景下,token便应运而生了。

以上就是PHP中ThinkPhp框架的token怎么使用的详细内容,更多请关注php中文网其它相关文章!

最新文章