前几天用thinkphp5做项目需要用到token登陆,在此整理了一下分享给大家,需要的可以研究研究。
一、首先在数据库的 users 表中添加两个字段
1、token
2、time_outtoken 【用于存储用户的 tokentime_out 用于设置用户 token 的过期时间首先创建函数: checkToekn($token)函数用于检验 token 是否存在, 并且更新 token】
publicfunctioncheckToken($token){$user=new\\app\\index\\model\\Users();$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){return90003;//token长时间未使用而过期,需重新登陆}$new_time_out=time()+604800;//604800是七天$res=$user->isUpdate(true)->where('token',$token)->update(['time_out'=>$new_time_out]);if($res){return90001;//token验证成功,time_out刷新成功,可以获取接口信息}}return90002;//token错误验证失败}
创建函数:douserLogin($username,$password)用于验证用户名密码, 并登陆, 返回 token 信息
publicfunctiondouserLogin(){$user=new\\app\\index\\model\\Users();$userisset=$user->where('username',$username)->find();if($userisset==null){returnjson_decode('{"user":"'.$username.'","code":"400","msg":"用户不存在"}');}else{$userpsisset=$user->where('username',$username)->where('password',sha1(md5($password)))->find();if($userpsisset==null){returnjson_decode('{"user":"'.$username.'","code":"401","msg":"密码错误"}');}else{//session('user',$username);$token=$this->makeToken();$time_out=strtotime("+7days");$userinfo=['time_out'=>$new_time_out,'token'=>$token];$res=$user->isUpdate(true)->where('username',$username)->update($userinfo);if($res){returnjson_decode('{"user":"'.$username.'","toekn":'.$token.'"code":"0","msg":"登录成功"}');}}}}
创建函数:makeToekn()创建 token
privatefunctionmakeToken(){$str=md5(uniqid(md5(microtime(true)),true));//生成一个不会重复的字符串$str=sha1($str);//加密return$str;}
使用的时候,在需要验证的地方加上如下内容即可判断是否登陆
$login=new\\app\\index\\controller\\Login;$res=$login->checkToken($token);if($res==90001){echo'ok';}elseif($res==90002){echo'err';}elseif($res==90003){echo'relogin';}
这样基本上就可以了,希望对大家有所帮助。
产品猿社区致力收录更多优质的商业产品,给服务商以及软件采购客户提供更多优质的软件产品,帮助开发者变现来实现多方共赢;
日常运营的过程中我们难免会遇到各种版权纠纷等问题,如果您在社区内发现有您的产品未经您授权而被用户提供下载或使用,您可按照我们投诉流程处理,点我投诉;
本文来自用户发布投稿,不代表产品猿立场 ;若对此文有疑问或内容有严重错误,可联系平台客服反馈;
部分产品是用户投稿,可能本文没有提供官方下下载地址或教程,若您看到的内容没有下载入口,您可以在我们产品园商城搜索看开发者是否有发布商品;若您是开发者,也诚邀您入驻商城平台发布的产品,地址:点我进入;
如若转载,请注明出处:https://www.chanpinyuan.cn/31820.html;