tp5 判断前台是否登录

记录一下:

登录生成签名:

//生成登录签名
$logintime = time();
$authData = [
    'uid'     =>$row['uid'],
    'logintime' =>$logintime,
];
$login_token = data_auth_sign($authData);
session('login_token',$login_token );

 common.php

/**
 * 数据签名认证
 *
 * @param  array $data 被认证的数据
 *
 * @return string       签名
 */
function data_auth_sign($data)
{
    //数据类型检测
    if (!is_array($data)) {
        $data = (array)$data;
    }
    ksort($data); //排序
    $code = http_build_query($data); //url编码并生成query字符串
    $sign = sha1($code); //生成签名
    return $sign;
}

判断前台是否登录:

private function is_front_login(){ 
        $uid = session('uid');
        if(!$uid) {
            return false;
        }
        $rowdata = model('user')->where(['uid'=>$uid])->find();
        if(!$rowdata){
            session('uid',null);
            session('session_start_time',null);
            session('login_token',null);
            return false;
        }
        //二次校验,防止登录用户session被改,及一个账号只能在一台设备上面登录
        if((session('login_token') != $rowdata['login_token'])){
            session('uid',null);
            session('session_start_time',null);
            session('login_token',null);
            return false;
        }
        //判断登陆有效期
        if(time()-session('session_start_time') > config('SESSION_OPTIONS')['expire']){
            session('uid',null);
            session('session_start_time',null);
            session('login_token',null);
            return false;
        }else{
            session('session_start_time', time());
        }
        return $rowdata;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值