php token 七天登录
// web 登录
public function doLogin()
{
if(request()->isAjax()){
$userName = input('post.username');
$password = input('post.password');
$captcha = input("post.validcode");
$seller = input('post.seller');
$remember = input('post.remember');
if(!captcha_check($captcha)){
return json(['code' => -3, 'data' => '', 'msg' => '验证码错误']);
}
$keFu = new KeFu();
$keFuInfo = $keFu->getKeFuInfo($userName, $seller);
if(0 != $keFuInfo['code'] || empty($keFuInfo['data'])){
return json(['code' => -1, 'data' => '', 'msg' => '客服不存在']);
}
if (0 == $keFuInfo['data']['kefu_status']) {
return json(['code' => -3, 'data' => '', 'msg' => '该客服已经被禁用']);
}
if(md5($password . config('service.salt')) != $keFuInfo['data']['kefu_password']){
return json(['code' => -2, 'data' => '', 'msg' => '用户名密码错误']);
}
// 检测客服所属商户的有效期
$seller = new Seller();
$sellerInfo = $seller->getSellerInfo($keFuInfo['data']['seller_code']);
if (empty($sellerInfo['data'])) {
return json(['code' => -4, 'data' => '', 'msg' => '客服所属商户不存在']);
}
if (0 == $sellerInfo['data']['seller_status']) {
return json(['code' => -5, 'data' => '', 'msg' => '商户尚未激活']);
}
if (date("Y-m-d H:i:s") > $sellerInfo['data']['valid_time']) {
return json(['code' => -6, 'data' => '', 'msg' => '商户使用期已过']);
}
if($remember == "true"){
$this->addServiceLogin($userName);
}
// 设置session标识状态
session('kf_user_name', $keFuInfo['data']['kefu_name']);
session('kf_user_id', $keFuInfo['data']['kefu_code']);
session('kf_id', $keFuInfo['data']['kefu_id']);
session('kf_user_avatar', $keFuInfo['data']['kefu_avatar']);
session('kf_seller_id', $keFuInfo['data']['seller_id']);
session('kf_seller_code', $keFuInfo['data']['seller_code']);
return json(['code' => 0, 'data' => url('index/index', ['u' => $keFuInfo['data']['seller_code']]), 'msg' => '登录成功']);
}
$this->error('非法访问');
}
public function addServiceLogin($userName)
{
$config_salt = $this->random_str(16);
$service_login = [
'uname'=>$userName,
'timeout'=>time()+120,
'identifier'=>md5($config_salt . md5($userName . $config_salt)),
'token'=>md5(uniqid(rand(), true))
];
setCookie('auth',$service_login['identifier'].':'.$service_login['token'],$service_login['timeout'],'/');
$service_login_timeout = new ServiceLoginTimeout($service_login);
$res = $service_login_timeout->save();
return $res;
}
public function random_str($length)
{
$arr = array_merge(range(0, 9), range('a', 'z'), range('A', 'Z'));
$str = '';
$arr_len = count($arr);
for ($i = 0; $i < $length; $i++){
$rand = mt_rand(0, $arr_len-1);
$str.=$arr[$rand];
}
return $str;
}
个人中心:
public function ucenter(){
//判断是否永久登录
if($_COOKIE['auth']){
验证是否表中数据过期和正确
}else{
$this->redirect(url('login/index', ['u' => $sellerCode]));
}
$this->assign("session",$_SESSION);
$this->display("ucenter");
}
退出:
public function loginout(){
session(null);
setcookie('auth', '', time()-1);
$this->redirect("Test/login");
}

浙公网安备 33010602011771号