laravel 5.2多重身份验证和laravel本地化身份验证不工作
我使用laravel 5.2开发站点并使用 及 我跟踪了链接中的所有内容 my routes.phplaravel 5.2多重身份验证和laravel本地化身份验证不工作,laravel,laravel-5.2,Laravel,Laravel 5.2,我使用laravel 5.2开发站点并使用 及 我跟踪了链接中的所有内容 my routes.php Route::group([ 'prefix' => LaravelLocalization::setLocale(), 'middleware' => ['web', 'localize', 'localeSessionRedirect', 'localizationRedirect'] ], function () { //Route::auth(); Ro
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['web', 'localize', 'localeSessionRedirect', 'localizationRedirect']
], function () {
//Route::auth();
Route::get('login', 'UserAuthController@showLoginForm');
Route::post('login', 'UserAuthController@login');
Route::get('logout', 'UserAuthController@logout');
//user
Route::get('user/dashboard', ['as'=> 'user/dashboard', 'uses' => 'UsersController@index']);
});
Route::group(
['middleware' => 'web'], function () {
//Admin Login Routes...
Route::get('/admin/login','Admin\Auth\AuthController@showLoginForm');
Route::post('/admin/login','Admin\Auth\AuthController@login');
Route::get('/admin/logout','Admin\Auth\AuthController@logout');
Route::get('admin/dashboard', 'Admin\DashboardController@index');
Route::resource('admin/administrator', 'Admin\AdminController',['except' => 'show']);
UserAuthController.php
namespace App\Http\Controllers;
use Validator;
use Auth;
use Session;
use Illuminate\Http\Request;
use App\Http\Requests;
class UserAuthController extends Controller
{
public function showLoginForm()
{
return view('auth.login');
}
public function login(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'password' => 'required',
]);
if ($validator->fails()){
// If validation falis redirect back to login.
return redirect('login')
->withErrors($validator)
->withInput();
}else {
$userdata = [
'email' => $request->email,
'password' => $request->password
];
// doing login.
if (Auth::guard('user')->validate($userdata)) {
if (Auth::guard('user')->attempt($userdata)) {
return redirect('/user/dashboard');
}
}
else {
// if any error send back with message.
Session::flash('error', 'Something went wrong');
return redirect('login');
}
}
}
public function logout()
{
Auth::guard('user')->logout();
return redirect('login');
}
}
namespace App\Http\Controllers;
use Auth;
//use Session;
use App\User_Profile;
use Illuminate\Http\Request;
use App\Http\Requests;
class UsersController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
session()->put('uid',Auth::guard('user')->user()->id);
session()->put('username', Auth::guard('user')->user()->username);
session()->put('email', Auth::guard('user')->user()->email);
$uid = session()->get('uid');
$username = session()->get('username');
$profile = User_Profile::where('user_id', '=', $uid)->first();
return view('users.index', compact('username', 'profile'));
}
}
namespace App\Http\Controllers\Admin\Auth;
use App\Admin;
use Validator;
use App\Http\Controllers\Admin\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
protected $redirectTo = 'admin/dashboard';
protected $guard = 'admin';
protected $redirectAfterLogout = 'admin/login';
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
public function showLoginForm()
{
if (view()->exists('auth.authenticate')) {
return view('auth.authenticate');
}
return view('admin.auth.login');
}
public function showRegistrationForm()
{
return view('admin.auth.register');
}
}
UsersController.php
namespace App\Http\Controllers;
use Validator;
use Auth;
use Session;
use Illuminate\Http\Request;
use App\Http\Requests;
class UserAuthController extends Controller
{
public function showLoginForm()
{
return view('auth.login');
}
public function login(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'password' => 'required',
]);
if ($validator->fails()){
// If validation falis redirect back to login.
return redirect('login')
->withErrors($validator)
->withInput();
}else {
$userdata = [
'email' => $request->email,
'password' => $request->password
];
// doing login.
if (Auth::guard('user')->validate($userdata)) {
if (Auth::guard('user')->attempt($userdata)) {
return redirect('/user/dashboard');
}
}
else {
// if any error send back with message.
Session::flash('error', 'Something went wrong');
return redirect('login');
}
}
}
public function logout()
{
Auth::guard('user')->logout();
return redirect('login');
}
}
namespace App\Http\Controllers;
use Auth;
//use Session;
use App\User_Profile;
use Illuminate\Http\Request;
use App\Http\Requests;
class UsersController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
session()->put('uid',Auth::guard('user')->user()->id);
session()->put('username', Auth::guard('user')->user()->username);
session()->put('email', Auth::guard('user')->user()->email);
$uid = session()->get('uid');
$username = session()->get('username');
$profile = User_Profile::where('user_id', '=', $uid)->first();
return view('users.index', compact('username', 'profile'));
}
}
namespace App\Http\Controllers\Admin\Auth;
use App\Admin;
use Validator;
use App\Http\Controllers\Admin\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
protected $redirectTo = 'admin/dashboard';
protected $guard = 'admin';
protected $redirectAfterLogout = 'admin/login';
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
public function showLoginForm()
{
if (view()->exists('auth.authenticate')) {
return view('auth.authenticate');
}
return view('admin.auth.login');
}
public function showRegistrationForm()
{
return view('admin.auth.register');
}
}
Admin\Auth\AuthController.php
namespace App\Http\Controllers;
use Validator;
use Auth;
use Session;
use Illuminate\Http\Request;
use App\Http\Requests;
class UserAuthController extends Controller
{
public function showLoginForm()
{
return view('auth.login');
}
public function login(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'password' => 'required',
]);
if ($validator->fails()){
// If validation falis redirect back to login.
return redirect('login')
->withErrors($validator)
->withInput();
}else {
$userdata = [
'email' => $request->email,
'password' => $request->password
];
// doing login.
if (Auth::guard('user')->validate($userdata)) {
if (Auth::guard('user')->attempt($userdata)) {
return redirect('/user/dashboard');
}
}
else {
// if any error send back with message.
Session::flash('error', 'Something went wrong');
return redirect('login');
}
}
}
public function logout()
{
Auth::guard('user')->logout();
return redirect('login');
}
}
namespace App\Http\Controllers;
use Auth;
//use Session;
use App\User_Profile;
use Illuminate\Http\Request;
use App\Http\Requests;
class UsersController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
session()->put('uid',Auth::guard('user')->user()->id);
session()->put('username', Auth::guard('user')->user()->username);
session()->put('email', Auth::guard('user')->user()->email);
$uid = session()->get('uid');
$username = session()->get('username');
$profile = User_Profile::where('user_id', '=', $uid)->first();
return view('users.index', compact('username', 'profile'));
}
}
namespace App\Http\Controllers\Admin\Auth;
use App\Admin;
use Validator;
use App\Http\Controllers\Admin\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
protected $redirectTo = 'admin/dashboard';
protected $guard = 'admin';
protected $redirectAfterLogout = 'admin/login';
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
public function showLoginForm()
{
if (view()->exists('auth.authenticate')) {
return view('auth.authenticate');
}
return view('admin.auth.login');
}
public function showRegistrationForm()
{
return view('admin.auth.register');
}
}
my kernel.php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
// \Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\View\Middleware\ShareErrorsFromSession::class,
// \App\Http\Middleware\VerifyCsrfToken::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
// 'auth' => [
// \App\Http\Middleware\Authenticate::class,
// \App\Http\Middleware\EncryptCookies::class,
// \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
// \Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\View\Middleware\ShareErrorsFromSession::class,
// \App\Http\Middleware\VerifyCsrfToken::class,
// ],
'api' => [
'throttle:60,1',
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'localize' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
'admin' => \App\Http\Middleware\RedirectIfNotAdmin::class,
'user' => \App\Http\Middleware\RedirectIfNotUser::class,
];
}
config/auth.php
return [
/*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect start for most applications.
|
*/
'defaults' => [
'guard' => 'user',
'passwords' => 'users',
],
/*
|--------------------------------------------------------------------------
| Authentication Guards
|--------------------------------------------------------------------------
|
| Next, you may define every authentication guard for your application.
| Of course, a great default configuration has been defined for you
| here which uses session storage and the Eloquent user provider.
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| Supported: "session", "token"
|
*/
'guards' => [
'user' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
/*
|--------------------------------------------------------------------------
| User Providers
|--------------------------------------------------------------------------
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| If you have multiple user tables or models you may configure multiple
| sources which represent each model / table. These sources may then
| be assigned to any extra authentication guards you have defined.
|
| Supported: "database", "eloquent"
|
*/
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
]
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
/*
|--------------------------------------------------------------------------
| Resetting Passwords
|--------------------------------------------------------------------------
|
| Here you may set the options for resetting passwords including the view
| that is your password reset e-mail. You may also set the name of the
| table that maintains all of the reset tokens for your application.
|
| You may specify multiple password reset configurations if you have more
| than one user table or model in the application and you want to have
| separate password reset settings based on the specific user types.
|
| The expire time is the number of minutes that the reset token should be
| considered valid. This security feature keeps tokens short-lived so
| they have less time to be guessed. You may change this as needed.
|
*/
'passwords' => [
'users' => [
'provider' => 'users',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
'admin' => [
'provider' => 'admin',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
],
];
我已经成功地在管理员登录,并做任何事情来管理后端
但不是在用户,每次登录时,我刷新保持重定向回登录页面。似乎$this->middleware('auth')不起作用
你能帮帮我吗,我错过了什么
谢谢请确保将视图中的表单(登录表单、注册表单等)发布到本地化url 因此,在刀片视图中,请使用:
<form method="POST" action="{{ url(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), '/password/email')) }}">
...
</form>
...
确保将视图中的表单(登录表单、注册表单等)发布到本地化url
因此,在刀片视图中,请使用:
<form method="POST" action="{{ url(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), '/password/email')) }}">
...
</form>
...
以上脚本正常
我在视图中犯了一个错误,我将
<a href="{{Auth::guard('guard_name')->user()->logout())}}">Signout</a>
导航视图中的注销功能
我已经改变了与通常注销链接的链接
<a href="{{url('logout')}}">Signout</a>
现在它开始工作了
谢谢以上脚本都可以 我在视图中犯了一个错误,我将
<a href="{{Auth::guard('guard_name')->user()->logout())}}">Signout</a>
导航视图中的注销功能
我已经改变了与通常注销链接的链接
<a href="{{url('logout')}}">Signout</a>
现在它开始工作了
谢谢你能找到解决方案吗?你能找到解决方案吗?为什么我的建议下面是-1??我建议检查你的观点,我是对的,错误就在那里。你没有在问题中发表你的观点,所以没有人知道错误在哪里。顺便说一句,我的建议解决了我在多重身份验证和本地化方面的许多问题。当使用非本地化url注销时(如示例中所示),这没有问题,但我仍然建议使用所选本地化代码作为所有链接的前缀。特别是在发布数据时,例如logindata。嗨,对不起,关于帖子。在我发布问题两天后,我找到了解决方案,现在我有时间更新我的帖子,为什么我的建议是-1??我建议检查你的观点,我是对的,错误就在那里。你没有在问题中发表你的观点,所以没有人知道错误在哪里。顺便说一句,我的建议解决了我在多重身份验证和本地化方面的许多问题。当使用非本地化url注销时(如示例中所示),这没有问题,但我仍然建议使用所选本地化代码作为所有链接的前缀。特别是在发布数据时,例如logindata。嗨,对不起,关于帖子。我在发布问题两天后找到了解决方案,现在我有时间更新我的帖子