Ç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 admin
veusers
Laravel 5.2'in yeni bir artisan
komutu var.
php artisan make:auth
temel giriş / kayıt üretecek route
, view
ve controller
için user
masaya.
Basitlik için bir admin
tablo olarak users
tablo yapın .
Yönetici Denetleyicisi
app/Http/Controllers/AdminAuth/AuthController
app/Http/Controllers/AdminAuth/PasswordController
(not: Bu dosyaları app/Http/Controllers/Auth/AuthController
buradan 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 $redirectTo
ve$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.