mirror of https://gitee.com/karson/fastadmin.git
parent
4149fce838
commit
0c953105c8
|
|
@ -2,7 +2,10 @@
|
||||||
|
|
||||||
namespace app\admin\controller;
|
namespace app\admin\controller;
|
||||||
|
|
||||||
|
use app\admin\model\AdminLog;
|
||||||
use app\common\controller\Backend;
|
use app\common\controller\Backend;
|
||||||
|
use think\Config;
|
||||||
|
use think\Hook;
|
||||||
use think\Validate;
|
use think\Validate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -64,13 +67,18 @@ class Index extends Backend
|
||||||
'password' => $password,
|
'password' => $password,
|
||||||
'__token__' => $token,
|
'__token__' => $token,
|
||||||
];
|
];
|
||||||
$validate = new Validate($rule);
|
if (Config::get('fastadmin.login_captcha'))
|
||||||
|
{
|
||||||
|
$rule['captcha'] = 'require|captcha';
|
||||||
|
$data['captcha'] = $this->request->post('captcha');
|
||||||
|
}
|
||||||
|
$validate = new Validate($rule, [], ['username' => __('Username'), 'password' => __('Password'), 'captcha' => __('Captcha')]);
|
||||||
$result = $validate->check($data);
|
$result = $validate->check($data);
|
||||||
if (!$result)
|
if (!$result)
|
||||||
{
|
{
|
||||||
$this->error($validate->getError(), $url, ['token' => $this->request->token()]);
|
$this->error($validate->getError(), $url, ['token' => $this->request->token()]);
|
||||||
}
|
}
|
||||||
\app\admin\model\AdminLog::setTitle(__('Login'));
|
AdminLog::setTitle(__('Login'));
|
||||||
$result = $this->auth->login($username, $password, $keeplogin ? 86400 : 0);
|
$result = $this->auth->login($username, $password, $keeplogin ? 86400 : 0);
|
||||||
if ($result === true)
|
if ($result === true)
|
||||||
{
|
{
|
||||||
|
|
@ -87,9 +95,9 @@ class Index extends Backend
|
||||||
{
|
{
|
||||||
$this->redirect($url);
|
$this->redirect($url);
|
||||||
}
|
}
|
||||||
$background = cdnurl("/assets/img/loginbg.jpg");
|
$background = cdnurl(Config::get('fastadmin.login_background'));
|
||||||
$this->view->assign('background', $background);
|
$this->view->assign('background', $background);
|
||||||
\think\Hook::listen("login_init", $this->request);
|
Hook::listen("login_init", $this->request);
|
||||||
return $this->view->fetch();
|
return $this->view->fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,4 +39,5 @@ return [
|
||||||
'Docs' => '官方文档',
|
'Docs' => '官方文档',
|
||||||
'Forum' => '交流社区',
|
'Forum' => '交流社区',
|
||||||
'QQ qun' => 'QQ交流群',
|
'QQ qun' => 'QQ交流群',
|
||||||
|
'Captcha' => '验证码',
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ namespace app\admin\library;
|
||||||
use app\admin\model\Admin;
|
use app\admin\model\Admin;
|
||||||
use fast\Random;
|
use fast\Random;
|
||||||
use fast\Tree;
|
use fast\Tree;
|
||||||
|
use think\Config;
|
||||||
use think\Cookie;
|
use think\Cookie;
|
||||||
use think\Request;
|
use think\Request;
|
||||||
use think\Session;
|
use think\Session;
|
||||||
|
|
@ -14,7 +15,6 @@ class Auth extends \fast\Auth
|
||||||
|
|
||||||
protected $requestUri = '';
|
protected $requestUri = '';
|
||||||
protected $breadcrumb = [];
|
protected $breadcrumb = [];
|
||||||
protected $loginUnique = false; //是否同一账号同一时间只能在一个地方登录
|
|
||||||
protected $logined = false; //登录状态
|
protected $logined = false; //登录状态
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
|
|
@ -165,7 +165,7 @@ class Auth extends \fast\Auth
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//判断是否同一时间同一账号只能在一个地方登录
|
//判断是否同一时间同一账号只能在一个地方登录
|
||||||
if ($this->loginUnique)
|
if (Config::get('fastadmin.login_unique'))
|
||||||
{
|
{
|
||||||
$my = Admin::get($admin->id);
|
$my = Admin::get($admin->id);
|
||||||
if (!$my || $my->token != $admin->token)
|
if (!$my || $my->token != $admin->token)
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="login-form">
|
<div class="login-form">
|
||||||
<img id="profile-img" class="profile-img-card" src="__CDN__/assets/img/avatar.png" />
|
<img id="profile-img" class="profile-img-card" src="__CDN__/assets/img/avatar.png" />
|
||||||
<p id="profile-name" class="profile-name-card"></p>
|
<p id="profile-name" class="profile-name-card"></p>
|
||||||
|
|
||||||
<form action="" method="post" id="login-form">
|
<form action="" method="post" id="login-form">
|
||||||
<div id="errtips" class="hide"></div>
|
<div id="errtips" class="hide"></div>
|
||||||
{:token()}
|
{:token()}
|
||||||
|
|
@ -76,7 +76,15 @@
|
||||||
<div class="input-group-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></div>
|
<div class="input-group-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></div>
|
||||||
<input type="password" class="form-control" id="pd-form-password" placeholder="{:__('Password')}" name="password" autocomplete="off" value="" data-rule="{:__('Password')}:required;password" />
|
<input type="password" class="form-control" id="pd-form-password" placeholder="{:__('Password')}" name="password" autocomplete="off" value="" data-rule="{:__('Password')}:required;password" />
|
||||||
</div>
|
</div>
|
||||||
|
{if $config.fastadmin.login_captcha}
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-addon"><span class="glyphicon glyphicon-option-horizontal" aria-hidden="true"></span></div>
|
||||||
|
<input type="text" name="captcha" class="form-control" placeholder="{:__('Captcha')}" data-rule="{:__('Captcha')}:required;length(4)" />
|
||||||
|
<span class="input-group-addon" style="padding:0;border:none;">
|
||||||
|
<img src="{:captcha_src()}" width="100" height="30" onclick="this.src = '{:captcha_src()}?r=' + Math.random();"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="inline" for="keeplogin">
|
<label class="inline" for="keeplogin">
|
||||||
<input type="checkbox" name="keeplogin" id="keeplogin" value="1" />
|
<input type="checkbox" name="keeplogin" id="keeplogin" value="1" />
|
||||||
|
|
|
||||||
|
|
@ -244,7 +244,14 @@ return [
|
||||||
],
|
],
|
||||||
//FastAdmin配置
|
//FastAdmin配置
|
||||||
'fastadmin' => [
|
'fastadmin' => [
|
||||||
'version' => '1.0.0.20171026_beta',
|
//登录验证码
|
||||||
'api_url' => 'http://api.fastadmin.net',
|
'login_captcha' => false,
|
||||||
|
//是否同一账号同一时间只能在一个地方登录
|
||||||
|
'login_unique' => false,
|
||||||
|
//登录页默认背景图
|
||||||
|
'login_background' => "/assets/img/loginbg.jpg",
|
||||||
|
//版本号
|
||||||
|
'version' => '1.0.0.20171206_beta',
|
||||||
|
'api_url' => 'http://api.fastadmin.net',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'form'], functi
|
||||||
if (lastlogin) {
|
if (lastlogin) {
|
||||||
lastlogin = JSON.parse(lastlogin);
|
lastlogin = JSON.parse(lastlogin);
|
||||||
$("#profile-img").attr("src", Backend.api.cdnurl(lastlogin.avatar));
|
$("#profile-img").attr("src", Backend.api.cdnurl(lastlogin.avatar));
|
||||||
$("#pd-form-username").val(lastlogin.username);
|
$("#profile-name").val(lastlogin.username);
|
||||||
}
|
}
|
||||||
|
|
||||||
//让错误提示框居中
|
//让错误提示框居中
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue