use redirect helper function

This commit is contained in:
printempw 2016-08-29 23:08:09 +08:00
parent cfd289c0c8
commit 0dd6d0125c
7 changed files with 37 additions and 57 deletions

View File

@ -79,12 +79,12 @@ class AdminController extends BaseController
$total_pages = ceil($users->count() / 30); $total_pages = ceil($users->count() / 30);
$users = $users->skip(($page - 1) * 30)->take(30)->get(); $users = $users->skip(($page - 1) * 30)->take(30)->get();
echo View::make('admin.users')->with('users', $users) return View::make('admin.users')->with('users', $users)
->with('filter', $filter) ->with('filter', $filter)
->with('q', $q) ->with('q', $q)
->with('page', $page) ->with('page', $page)
->with('total_pages', $total_pages) ->with('total_pages', $total_pages)
->render(); ->render();
} }
public function players() public function players()
@ -106,12 +106,12 @@ class AdminController extends BaseController
$total_pages = ceil($players->count() / 30); $total_pages = ceil($players->count() / 30);
$players = $players->skip(($page - 1) * 30)->take(30)->get(); $players = $players->skip(($page - 1) * 30)->take(30)->get();
echo View::make('admin.players')->with('players', $players) return View::make('admin.players')->with('players', $players)
->with('filter', $filter) ->with('filter', $filter)
->with('q', $q) ->with('q', $q)
->with('page', $page) ->with('page', $page)
->with('total_pages', $total_pages) ->with('total_pages', $total_pages)
->render(); ->render();
} }
/** /**

View File

@ -72,7 +72,6 @@ class AuthController extends BaseController
setcookie('token', '', time() - 3600, '/'); setcookie('token', '', time() - 3600, '/');
Session::flush(); Session::flush();
Session::save();
View::json('登出成功~', 0); View::json('登出成功~', 0);
} else { } else {
@ -184,24 +183,24 @@ class AuthController extends BaseController
if (isset($_GET['uid']) && isset($_GET['token'])) { if (isset($_GET['uid']) && isset($_GET['token'])) {
$user = new User($_GET['uid']); $user = new User($_GET['uid']);
if (!$user->is_registered) if (!$user->is_registered)
Http::redirect('./forgot', '无效的链接'); return redirect('auth/forgot')->with('msg', '无效的链接');
$token = substr(base64_decode($_GET['token']), 0, -22); $token = substr(base64_decode($_GET['token']), 0, -22);
if ($user->getToken() != $token) { if ($user->getToken() != $token) {
Http::redirect('./forgot', '无效的链接'); return redirect('auth/forgot')->with('msg', '无效的链接');
} }
$timestamp = substr(base64_decode($_GET['token']), strlen($token), 6); $timestamp = substr(base64_decode($_GET['token']), strlen($token), 6);
// more than 1 hour // more than 1 hour
if ((substr(time(), 4, 6) - $timestamp) > 3600) { if ((substr(time(), 4, 6) - $timestamp) > 3600) {
Http::redirect('./forgot', '链接已过期'); return redirect('auth/forgot')->with('msg', '链接已过期');
} }
echo View::make('auth.reset')->with('user', $user); return View::make('auth.reset')->with('user', $user);
} else { } else {
Http::redirect('./login', '非法访问'); return redirect('auth/login')->with('msg', '非法访问');
} }
} }
@ -224,8 +223,9 @@ class AuthController extends BaseController
$builder = new \Gregwar\Captcha\CaptchaBuilder; $builder = new \Gregwar\Captcha\CaptchaBuilder;
$builder->build($width = 100, $height = 34); $builder->build($width = 100, $height = 34);
Session::put('phrase', $builder->getPhrase()); Session::put('phrase', $builder->getPhrase());
header('Content-type: image/jpeg');
$builder->output(); $builder->output();
return \Response::png();
} }
} }

View File

@ -8,8 +8,12 @@ class CheckAdminMiddleware
{ {
$user = (new CheckAuthenticated)->handle($request, $next, true); $user = (new CheckAuthenticated)->handle($request, $next, true);
if ($user instanceof \Illuminate\Http\RedirectResponse) {
return $user;
}
if (!$user->is_admin) { if (!$user->is_admin) {
\Http::redirect('../user', '看起来你并不是管理员哦'); return redirect('user')->with('msg', '看起来你并不是管理员哦');
} }
return $next($request); return $next($request);

View File

@ -17,12 +17,13 @@ class CheckAuthenticated
$user = new User(session('uid')); $user = new User(session('uid'));
if (session('token') != $user->getToken()) if (session('token') != $user->getToken())
Http::redirect('../auth/login', '无效的 token请重新登录~'); return redirect('auth/login')->with('msg', '无效的 token请重新登录');
if ($user->getPermission() == "-1") { if ($user->getPermission() == "-1") {
// delete cookies // delete cookies
setcookie('uid', '', time() - 3600, '/'); setcookie('uid', '', time() - 3600, '/');
setcookie('token', '', time() - 3600, '/'); setcookie('token', '', time() - 3600, '/');
Session::flush(); Session::flush();
Session::save(); Session::save();
@ -38,6 +39,7 @@ class CheckAuthenticated
// refresh token // refresh token
Session::put('token', $user->getToken(true)); Session::put('token', $user->getToken(true));
setcookie('token', session('token'), time() + 3600, '/'); setcookie('token', session('token'), time() + 3600, '/');
return $user; return $user;
} else { } else {
return View::make('auth.bind')->with('msg', '该邮箱已被占用'); return View::make('auth.bind')->with('msg', '该邮箱已被占用');
@ -45,10 +47,8 @@ class CheckAuthenticated
} else { } else {
return View::make('auth.bind')->with('msg', '邮箱格式错误'); return View::make('auth.bind')->with('msg', '邮箱格式错误');
} }
exit;
} }
return view('auth.bind'); return view('auth.bind');
exit;
} }
if ($return_user) if ($return_user)
@ -56,7 +56,7 @@ class CheckAuthenticated
return $next($request); return $next($request);
} else { } else {
Http::redirect('../auth/login', '非法访问,请先登录'); return redirect('auth/login')->with('msg', '非法访问,请先登录');
} }
return $next($request); return $next($request);

View File

@ -10,11 +10,10 @@ class RedirectIfAuthenticated
public function handle($request, \Closure $next) public function handle($request, \Closure $next)
{ {
if (session()->has('uid')) { if (session()->has('uid')) {
if (session('token') != (new User(session('uid')))->getToken()) if (session('token') != (new User(session('uid')))->getToken()) {
{
Session::put('msg', '无效的 token请重新登录~'); Session::put('msg', '无效的 token请重新登录~');
} else { } else {
\Http::redirect('../user'); return redirect('user');
} }
} }

View File

@ -6,32 +6,6 @@ use Session;
class Http class Http
{ {
/**
* HTTP redirect
*
* @param string $url
* @param string $msg Write message to session
* @return void
*/
public static function redirect($url, $msg = "")
{
if ($msg !== "") {
if (app()->bound('session')) {
Session::flash('msg', $msg);
Session::save();
} else {
$_SESSION['msg'] = $msg;
}
}
if (!headers_sent()) {
header('Location: '.$url);
} else {
echo "<meta http-equiv='Refresh' content='0; URL=$url'>";
}
exit;
}
/** /**
* 301 Moved Permanently * 301 Moved Permanently
* *

View File

@ -2,6 +2,8 @@
namespace App\Services; namespace App\Services;
use Session;
/** /**
* @see \Illuminate\Support\Facades\View * @see \Illuminate\Support\Facades\View
*/ */
@ -24,16 +26,17 @@ class View extends \Illuminate\Support\Facades\View
} }
} }
private static function jsonCustom($array) private static function jsonCustom(Array $array)
{ {
if (is_array($array)) if (is_array($array)) {
Session::save();
exit(json_encode($array)); exit(json_encode($array));
else }
throw new \Exception('The given arugument should be array.');
} }
private static function jsonException($msg, $errno) private static function jsonException($msg, $errno)
{ {
Session::save();
exit(json_encode([ exit(json_encode([
'errno' => $errno, 'errno' => $errno,
'msg' => $msg 'msg' => $msg