54 lines
1.6 KiB
PHP
54 lines
1.6 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\controller;
|
||
|
use support\Request;
|
||
|
use Webman\Captcha\CaptchaBuilder;
|
||
|
use support\View;
|
||
|
use Respect\Validation\Validator as v;
|
||
|
|
||
|
|
||
|
class login
|
||
|
{
|
||
|
public function index(Request $request)
|
||
|
{
|
||
|
$to=$request->get('to', '/');
|
||
|
View::assign('to', $to);
|
||
|
return view('login');
|
||
|
}
|
||
|
|
||
|
public function check(Request $request)
|
||
|
{
|
||
|
$name = $request->post('name','0');
|
||
|
$password = $request->post('password','0');
|
||
|
|
||
|
try {
|
||
|
$usernameValidator->StringType()->setName('用户名')->check($name);
|
||
|
} catch (ValidationException $exception) {
|
||
|
return json(['code'=>500, 'msg'=>$e->getMessage()]);
|
||
|
}
|
||
|
try {
|
||
|
$usernameValidator->StringType()->setName('密码')->check($password);
|
||
|
} catch (ValidationException $exception) {
|
||
|
return json(['code'=>500, 'msg'=>$e->getMessage()]);
|
||
|
}
|
||
|
$redis = Redis::connection('default');
|
||
|
$userinfo=$redis->hget('User',"$name");
|
||
|
if($userinfo===false){
|
||
|
return json(['code'=>501, 'msg'=>'No Such Username']);
|
||
|
}
|
||
|
$realpass=json_decode($userinfo)->passwd;
|
||
|
|
||
|
if(hash("sha256", $realpass)==$realpass){
|
||
|
$session = $request->session();
|
||
|
$session->set('userinfo', $userinfo);
|
||
|
$to = $request->post('to','/admin');
|
||
|
return json(['code'=>200, 'msg'=>'Login Successfully']);
|
||
|
}else{
|
||
|
return json(['code'=>502, 'msg'=>'Auth Failed']);
|
||
|
}
|
||
|
|
||
|
|
||
|
return json(['code'=>999, 'msg'=>'Unknown Problem']);
|
||
|
}
|
||
|
|
||
|
}
|