Initial commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
|
||||
class AuthAdmin
|
||||
{
|
||||
public function handle($request, \Closure $next)
|
||||
{
|
||||
$islogin = false;
|
||||
$cookie = cookie('admin_token');
|
||||
if($cookie){
|
||||
$token=authcode($cookie, 'DECODE', config_get('syskey'));
|
||||
if($token){
|
||||
list($user, $sid, $expiretime) = explode("\t", $token);
|
||||
$session=md5(config_get('admin_username').config_get('admin_password'));
|
||||
if($session==$sid && $expiretime>time()) {
|
||||
$islogin = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$islogin) {
|
||||
if ($request->isAjax() || !$request->isGet()) {
|
||||
return msg('error', '请登录')->code(401);
|
||||
}
|
||||
return redirect((string)url('/admin/login.html'));
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
use think\facade\Db;
|
||||
|
||||
class AuthUser
|
||||
{
|
||||
public function handle($request, \Closure $next)
|
||||
{
|
||||
$islogin = false;
|
||||
$cookie = cookie('user_token');
|
||||
$user = null;
|
||||
if($cookie){
|
||||
$token=authcode($cookie, 'DECODE', config_get('syskey'));
|
||||
if($token){
|
||||
list($uid, $sid, $expiretime) = explode("\t", $token);
|
||||
$user = Db::name('user')->where('id', $uid)->find();
|
||||
if($user && $user['enable']==1){
|
||||
$session=md5($user['id'].$user['password']);
|
||||
if($session==$sid && $expiretime>time()) {
|
||||
if(!$user['avatar_url']) $user['avatar_url'] = '/static/images/user.png';
|
||||
$islogin = true;
|
||||
}
|
||||
}elseif($user && $user['enable']==0 && !session('user_block')){
|
||||
session('user_block', '1');
|
||||
}
|
||||
}
|
||||
}
|
||||
$request->islogin = $islogin;
|
||||
$request->user = $user;
|
||||
/*if (!$islogin) {
|
||||
if ($request->isAjax() || !$request->isGet()) {
|
||||
return msg('error','请登录');
|
||||
}
|
||||
return redirect((string)url('/login'));
|
||||
}*/
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
use think\facade\Db;
|
||||
use think\facade\Config;
|
||||
|
||||
class LoadConfig
|
||||
{
|
||||
/**
|
||||
* 处理请求
|
||||
*
|
||||
* @param \think\Request $request
|
||||
* @param \Closure $next
|
||||
* @return Response
|
||||
*/
|
||||
public function handle($request, \Closure $next)
|
||||
{
|
||||
if (!file_exists(app()->getRootPath().'.env')){
|
||||
return redirect((string)url('/install'));
|
||||
}
|
||||
|
||||
$res = Db::name('config')->cache('configs',0)->column('value','key');
|
||||
Config::set($res, 'sys');
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
use think\facade\View;
|
||||
|
||||
class RefererCheck
|
||||
{
|
||||
/**
|
||||
* 处理请求
|
||||
*
|
||||
* @param \think\Request $request
|
||||
* @param \Closure $next
|
||||
* @return Response
|
||||
*/
|
||||
public function handle($request, \Closure $next)
|
||||
{
|
||||
if(!checkRefererHost()){
|
||||
return response('Access Denied', 403);
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
use think\facade\View;
|
||||
|
||||
class ViewOutput
|
||||
{
|
||||
/**
|
||||
* 处理请求
|
||||
*
|
||||
* @param \think\Request $request
|
||||
* @param \Closure $next
|
||||
* @return Response
|
||||
*/
|
||||
public function handle($request, \Closure $next)
|
||||
{
|
||||
View::assign('islogin', $request->islogin);
|
||||
View::assign('user', $request->user);
|
||||
View::assign('cdn_cdnjs', config_get('cdn_cdnjs', '//cdn.staticfile.org/'));
|
||||
View::assign('cdn_npm', config_get('cdn_npm', 'https://unpkg.com/'));
|
||||
View::config(['view_path' => template_path_get()]);
|
||||
return $next($request)->header([
|
||||
'Cache-Control' => 'no-store, no-cache, must-revalidate',
|
||||
'Pragma' => 'no-cache',
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user