62 lines
1.7 KiB
PHP
Executable File
62 lines
1.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\controller;
|
|
|
|
use app\model\AuthRule;
|
|
use app\model\LoginLog;
|
|
use app\model\Member;
|
|
use app\service\Jwt;
|
|
|
|
class ApiManager extends Base
|
|
{
|
|
public function index()
|
|
{
|
|
// $jwtData = [
|
|
// 'member_id' => "11",
|
|
// ];
|
|
// $token = Jwt::generate($jwtData);
|
|
|
|
$token = input("token/s","");
|
|
$userInfo = Jwt::parse($token);//token中携带的简易用户信息
|
|
if(empty($userInfo)||!array_key_exists("member_id",$userInfo)){
|
|
return $this->json(4001,"无效请求");
|
|
}
|
|
$member = Member::getById($userInfo["member_id"]);
|
|
if(empty($member)){
|
|
return $this->json(4001,"用户不存在");
|
|
}
|
|
|
|
//执行登录
|
|
$rulesList = AuthRule::userRolesList($member['group_id']);
|
|
$rulesIdStr = '';
|
|
if (!empty($rulesList)) {
|
|
$rulesId = $rulesList['allRulesId'];
|
|
$rulesIdStr = implode(',', $rulesId);
|
|
}
|
|
$authSession = [
|
|
'userId' => $member['id'],
|
|
'userName' => $member['username'],
|
|
'groupId' => $member['group_id'],
|
|
'rules' => $rulesIdStr,
|
|
'cates' => $member['cates']
|
|
];
|
|
|
|
//记录最后登陆时间
|
|
$ip = request()->ip();
|
|
$time = time();
|
|
Member::updateById($member['id'], [
|
|
'login_time' => $time,
|
|
'login_ip' => $ip
|
|
]);
|
|
LoginLog::create([
|
|
'member_id' => $member['id'],
|
|
'name' => $member['username'],
|
|
'ip' => $ip,
|
|
'create_time' => $time
|
|
]);
|
|
session('auth', $authSession);
|
|
|
|
return $this->redirect("/manager");
|
|
}
|
|
|
|
} |