Çok sayıda kazma ve birçok soru ve cevaptan sonra nihayet Laravel 5.2 Multi Auth'u iki tablo ile çalışmayı başardım, Bu yüzden kendi sorumun cevabını yazıyorum.
Larvel 5.2'de Çoklu Kimlik Doğrulama nasıl uygulanır
Yukarıda belirtildiği gibi. İki masa adminveusers
Laravel 5.2'in yeni bir artisankomutu var.
php artisan make:auth
temel giriş / kayıt üretecek route, viewve controlleriçin usermasaya.
Basitlik için bir admintablo olarak userstablo yapın .
Yönetici Denetleyicisi
app/Http/Controllers/AdminAuth/AuthController
app/Http/Controllers/AdminAuth/PasswordController
(not: Bu dosyaları app/Http/Controllers/Auth/AuthControllerburadan kopyaladım )
config/auth.php
//Authenticating guards
'guards' => [
'user' =>[
'driver' => 'session',
'provider' => 'user',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
//User Providers
'providers' => [
'user' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
]
],
//Resetting Password
'passwords' => [
'clients' => [
'provider' => 'client',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
'admins' => [
'provider' => 'admin',
'email' => 'auth.emails.password',
'table' => 'password_resets',
'expire' => 60,
],
],
route.php
Route::group(['middleware' => ['web']], function () {
//Login Routes...
Route::get('/admin/login','AdminAuth\AuthController@showLoginForm');
Route::post('/admin/login','AdminAuth\AuthController@login');
Route::get('/admin/logout','AdminAuth\AuthController@logout');
// Registration Routes...
Route::get('admin/register', 'AdminAuth\AuthController@showRegistrationForm');
Route::post('admin/register', 'AdminAuth\AuthController@register');
Route::get('/admin', 'AdminController@index');
});
AdminAuth/AuthController.php
İki yöntem ekleyin $redirectTove$guard
protected $redirectTo = '/admin';
protected $guard = 'admin';
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');
}
yönetici için başka bir giriş formu açmanıza yardımcı olacaktır
için bir ara katman oluşturma admin
class RedirectIfNotAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = 'admin')
{
if (!Auth::guard($guard)->check()) {
return redirect('/');
}
return $next($request);
}
}
ara katman yazılımını kaydet kernel.php
protected $routeMiddleware = [
'admin' => \App\Http\Middleware\RedirectIfNotAdmin::class,
];
Bu ara katman yazılımını AdminController
örn.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class AdminController extends Controller
{
public function __construct(){
$this->middleware('admin');
}
public function index(){
return view('admin.dashboard');
}
}
Çalışmasını sağlamak ve ayrıca kimliği doğrulanmış yönetici kullanımı için json almak için tüm bunlar gerekli
Auth::guard('admin')->user()
Düzenle - 1
Kimliği doğrulanmış kullanıcıya doğrudan kullanarak erişebiliriz,
Auth::user()
ancak iki kimlik doğrulama tablonuz varsa,
Auth::guard('guard_name')->user()
çıkış için
Auth::guard('guard_name')->user()->logout()
kimliği doğrulanmış kullanıcı json için
Auth::guard('guard_name')->user()
Düzenle 2
Şimdi Laravel 5.2 Multiauth uygulanmış Proje indirebilirsiniz http://imrealashu.in/code/laravel/multi-auth-with-laravel-5-2-2/
protected $guard = 'guard_name'şimdi kullanılabilir.