Laravel 5.1
我正在尝试为控制器中的每个方法构建此功能。这是非常不切实际的,也很难维护。如何在我在特定路由中注册auth
中间件时设置此项,然后它将重定向到登录页面以及尝试查看/访问的URL。
示例:
网址:public/users
如果此网址会尝试由未经身份验证的用户访问,则该用户将被重定向到public/login?url=http://localhost/myproject/public/users
然后用户成功登录后,用户将被重定向到http://localhost/myproject/public/users
我现在拥有的东西: (但我认为不是一个好用的)
public function getLoginURL(){
if(!Input::get('location-login')){
// URL is not set, redirect user to home.
return redirect('/');
}
if(auth()->check()){
// User is logged in. Go the specified URL (depends on the middleware of the url (route))
return redirect()->to(Input::get('location-login'));
}
if(!auth()->check()){
// Redirect user to a login with the URL provided
return view('pages::auth.login.url');
}
}
答案 0 :(得分:0)
您可以在中间件中使用下一个方法...无需发送网址
public function handle($request, Closure $next)
{
if (Auth::user()) {
return $next($request);
}
return redirect('/login');
}
答案 1 :(得分:0)
在
中使用此功能AuthController
namespace App\Http\Controllers;
use Auth;
use Illuminate\Routing\Controller;
class AuthController extends Controller
{
/**
* Handle an authentication attempt.
*
* @return Response
*/
public function authenticate()
{
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// Authentication passed...
return redirect()->intended('dashboard');
}
}
}
intended()
功能会将您重定向到您想要的位置。
请查看Intended redirect