English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
المقدمة
هذا المقال يقدم شرحًا حول كيفية تنفيذ تسجيل الدخول الأمامي والخلفي في Laravel 5.5 باستخدام مكون Auth المدمج، للحصول على مزيد من المعلومات حول مكون Auth يمكنكم مراجعة هذا المقال: https://ar.oldtoolbag.com/article/121401.htm
لن أطيل الحديث، دعونا نرى الشرح المفصل الآن.
الطريقة كالتالي:
الخطوة 1: إنشاء Auth
بعد إكمال المشروع، يتم إنشاء مكون Auth المدمج:
php artisan make:auth
الخطوة 2: إضافة حاجز
فتح ملف config\auth.php، لسهولة التبديل بين المستخدمين الأماميين والخلفيين، يستخدم المشروع جدول Users المشترك
'guards' => [ //... 'admin' => [}} 'driver' => 'session', 'provider' => 'users', ], //... ],
الخطوة 3: تنفيذ كلاس الأساس
class AdminController extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function __construct() { $this->middleware('auth:admin'); } }
الخطوة 4: تنفيذ تحكم تسجيل الدخول للتطبيق
إنشاء ملف appcontrollersAdminLoginController.php
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | هذا التحكم يتعامل مع تسجيل الدخول للمستخدمين في التطبيق و | يقوم بتوجيههم إلى شاشة منزلك. يستخدم التحكم الخاصية | لتقديم وظائفه بسهولة إلى تطبيقاتك. | */ use AuthenticatesUsers; /** * إلى أين يتم توجيه المستخدمين بعد تسجيل الدخول. * * @var string */ protected $redirectTo = '/admin'; /** * قم بإنشاء مثيل جديد للتحكم. * * @return void */ public function __construct() { $this->middleware('guest:admin')->except('logout'); } /** * 重写登陆页面 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showLoginForm() { return view('backend.login'); } /** * 重写退出方法 * @param Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function logout(Request $request) { $this->guard()->logout(); $request->session()->flush(); $request->session()->regenerate(); return redirect('/admin/login'); } /** * 重写guard认证 * @return mixed */ protected function guard() { return Auth::guard('admin'); } }
步骤5:实现登陆后跳转到不同路径
app\Middleware\RedirectIfAuthenticated.php
public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { $path = $guard ? '/admin' : '/home'; return redirect($path); } return $next($request); }
步骤6:实现未通过认证跳转不同登陆页
app\Exceptions\Handler.php
/** * 重写实现未认证用户跳转至相应登陆页 * @param \Illuminate\Http\Request $request * @param AuthenticationException $exception * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ protected function unauthenticated($request, AuthenticationException $exception) { if($request->expectsJson()){ return response()->json(['message' => $exception->getMessage()], 401); } return in_array('admin', $exception->guards()) ? return redirect()->guest('/admin/login') : redirect()->guest('login'); } }
إكمال
النتيجة
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون محتوى هذا المقال له قيمة مرجعية تعليمية أو عملية للمستخدمين، إذا كان لديك أي أسئلة، يمكنك ترك تعليق للتفاعل، شكراً لدعم دليل呐喊.
بيان: محتويات هذا المقال تم جمعها من الإنترنت، ويحق للمالك الأصلي حقوق الطبع والنشر، تم جمع المحتويات من قبل المستخدمين على الإنترنت الذين قدموا مساهماتهم بشكل تلقائي، ويملك هذا الموقع حقوق الملكية، لم يتم تعديل المحتويات بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية تتعلق بذلك. إذا لاحظت محتويات مخالفة لحقوق الطبع والنشر، فالرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) لإبلاغنا، وقدم الأدلة ذات الصلة، وإذا تم التحقق من ذلك، فإن هذا الموقع سيقوم بإزالة المحتويات المشبوهة فوراً.