बहुत सारे खुदाई और बहुत सारे सवालों और जवाबों के बाद मैं आखिरकार लारवेल 5.2 मल्टी प्रामाणिक को दो टेबल के साथ काम करने में कामयाब रहा, इसलिए मैं अपने प्रश्न का उत्तर लिख रहा हूं।
लार्वा 5.2 में बहु प्रमाण को कैसे लागू किया जाए
जैसा कि ऊपर उल्लेख किया गया है। दो टेबल admin
औरusers
लारवेल 5.2 में एक नया artisan
कमांड है।
php artisan make:auth
यह बुनियादी लॉगिन / रजिस्टर उत्पन्न होगा route
, view
और controller
के लिए user
तालिका।
सादगी के लिए admin
टेबल को users
टेबल बनाएं ।
व्यवस्थापक के लिए व्यवस्थापक
app/Http/Controllers/AdminAuth/AuthController
app/Http/Controllers/AdminAuth/PasswordController
(ध्यान दें: मैंने अभी इन फ़ाइलों को app/Http/Controllers/Auth/AuthController
यहां से कॉपी किया है)
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
दो विधियाँ जोड़ें और निर्दिष्ट करें $redirectTo
और$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');
}
यह आपको व्यवस्थापक के लिए एक और लॉगिन फ़ॉर्म खोलने में मदद करेगा
के लिए एक मिडलवेयर बनाना 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);
}
}
में मिडिलवेयर पंजीकृत करें kernel.php
protected $routeMiddleware = [
'admin' => \App\Http\Middleware\RedirectIfNotAdmin::class,
];
AdminController
उदाहरण के लिए, इस मिडलवेयर का उपयोग करें
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');
}
}
इसे काम करने के लिए और प्रमाणीकृत व्यवस्थापक उपयोग के json पाने के लिए सभी की आवश्यकता है
Auth::guard('admin')->user()
संपादित करें - 1
हम प्रमाणित उपयोगकर्ता को सीधे उपयोग कर सकते हैं
Auth::user()
लेकिन यदि आपके पास दो प्रमाणीकरण तालिका है तो आपको उपयोग करना होगा
Auth::guard('guard_name')->user()
लॉगआउट के लिए
Auth::guard('guard_name')->user()->logout()
प्रमाणित उपयोगकर्ता json के लिए
Auth::guard('guard_name')->user()
संपादित करें २
अब आप लारवेल 5.2 बहुस्तरीय कार्यान्वित परियोजना http://imrealashu.in/code/laravel/multi-auth-with-laravel-5-2-2/ डाउनलोड कर सकते हैं
protected $guard = 'guard_name'
अब इस्तेमाल किया जा सकता है।