//后台代碼
public function settoken(){
$str = md5(uniqid(md5(time()),true));
return $str;
}
/**
*token驗證
*/
public function checktoken(request $request){
$token = $request->token;
$res = M_user::where('token',$token)->where('outtime','>',time())->first();
if($res){
echo json_encode(['code'=>200,'msg'=>'驗證成功']);
}else{
echo json_encode(['code'=>40003,'msg'=>'驗證失敗']);
}
}
public function token(){
$info = session('info');
return view('/Admin/token',['info'=>$info]);
}
public function logins_do(request $request){
$user_name = $request->user_name;
$user_pwd = $request->user_pwd;
$data = M_user::where('user_name',$user_name)->first();
if($data){
$info = M_user::where('user_pwd',md5(md5($user_pwd)))->first();
if($info){
$token = $this->settoken();
$outtime = time()+60;
$info = M_user::find($info->id);
$info->token = $token;
$info->outtime= $outtime;
$info->save();
$info = $info->toArray();
unset($info['user_pwd']);
session(['info'=>$info]);
json_encode(['code'=>200,'msg'=>'登錄成功']);
return redirect('/Admin/token');
}else{
return json_encode(['code'=>40002,'msg'=>'密碼錯誤']);
}
}else{
return json_encode(['code'=>40001,'msg'=>'用戶名不存在']);
}
}
//前台代碼
<body>
<th>
<li>當前token<?php echo $info['token'];?></li>
<li><button id="btn">token驗證</button></li>
</th>
</body>
<script src="/jquery.min.js"></script>
//jquery代碼
<script>
window.localStorage.setItem('token','<?php echo $info["token"];?>');
$(document).on('click','#btn',function(){
$.ajax({
url: "/Admin/checktoken",
method: "GET",
data: {token : window.localStorage.getItem('token')},
dataType: "json",
success:function(res){
if(res.code==200){
window.location.href="/home";
alert(res.msg);
}else{
window.location.href="/logins";
alert(res.msg);
}
}
});
})
</script>