প্রচুর খনন এবং প্রচুর প্রশ্ন ও উত্তরের পরে অবশেষে আমি দুটি টেবিলের সাথে লারাভেল 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');
}
}
এটিকে কাজ করার জন্য এবং সত্যায়িত প্রশাসনিক ব্যবহারের জেসসন পাওয়ার জন্য এটিই প্রয়োজন all
Auth::guard('admin')->user()
সম্পাদনা করুন - 1
আমরা সরাসরি ব্যবহার করে প্রমাণীকৃত ব্যবহারকারী অ্যাক্সেস করতে পারি
Auth::user()
তবে আপনার যদি দুটি প্রমাণীকরণের টেবিল থাকে তবে আপনাকে ব্যবহার করতে হবে
Auth::guard('guard_name')->user()
লগআউট জন্য
Auth::guard('guard_name')->user()->logout()
অনুমোদনপ্রাপ্ত ব্যবহারকারীর জন্য
Auth::guard('guard_name')->user()
সম্পাদনা 2
এখন আপনি লারাভেল 5.2 মাল্টিআউথ প্রয়োগিত প্রকল্পটি ডাউনলোড করতে পারেন http://imrealashu.in/code/laravel/m Multi-auth-with-laravel-5-2-2-2/
protected $guard = 'guard_name'
এখন ব্যবহার করা যেতে পারে।