راکت
حل شده

تغییر کنترلر لاگین در لاراول

8 پاسخ

سلام وقتتون بخیر من میخوام کنترلر لاگین رو دست کاری کنم ولی نمیدونم کجاست؟
@mhyeganeh
@ali.bayat
@Rp76

ثبت پرسش جدید

پاسخ‌ها

8
NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

بهترین پاسخ

Config/fortify.php

اینارو تغییر دادم

 'username' => 'email',

    'email' => 'email',

به این

    'username' => 'username',

    'username' => 'username',

درست شد

@arminrahmati999
@Rp76
@eniack
@mehdi.shahabbasian

مهدی شاه عباسیان
مهدی شاه عباسیان
@shahabbasian

تخصص: برنامه نویس

سلام

بستگی داره از چه سیستمی استفاده میکنید که من با توجه به سوالتون حدس میزنم از laravel/ui استفاده کردید و حالا میخوایم اونو شخصی سازی کنید

اول laravel/ui رو نصب کردید:

composer require laravel/ui

و با دستور زیر Auth مربوط به لاراول رو پیاده سازی کردید

 php artisan ui:auth

خب با این کار کنترلر های مربوط به لاگین و ... در پوشه App\Http\Controllers\Auth تولید میشن
و برای کار رو کنترل لاگین با فایل LoginController کار دارید.

در این فایل یک trait موجوده

use AuthenticatesUsers;

که اکشن های مربوط به لاگین در این trait موجوده
و اگر بخواین اکشن لاگین را دستکاری کنید پس نیازه که تابع اونو توی LoginController بازنویسی کنید:

/**
     * Handle a login request to the application.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\Http\JsonResponse
     *
     * @throws \Illuminate\Validation\ValidationException
     */
    public function login(Request $request)
    {
        $this->validateLogin($request);

        // If the class is using the ThrottlesLogins trait, we can automatically throttle
        // the login attempts for this application. We'll key this by the username and
        // the IP address of the client making these requests into this application.
        if (method_exists($this, 'hasTooManyLoginAttempts') &&
            $this->hasTooManyLoginAttempts($request)) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        if ($this->attemptLogin($request)) {
            return $this->sendLoginResponse($request);
        }

        // If the login attempt was unsuccessful we will increment the number of attempts
        // to login and redirect the user back to the login form. Of course, when this
        // user surpasses their maximum number of attempts they will get locked out.
        $this->incrementLoginAttempts($request);

        return $this->sendFailedLoginResponse($request);
    }

تمامی توابعی که در لاگین داره کار میکنه توی همین triat موجوده و میتونید هرکدومو که نیازه در خود کنترلر بازنویسی کنید

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

@nesyourys
سلام ، لاراول یک دستور کاربردی داره که تمامی url های روت ها ، نام روت ها و کنترل هایی که به اون روت مربوط هستن رو نمایش میده با آدرس جایی که اون کنترل مربوطه قرار داره

php artisan route:list

شاید پاسخ شما همین‌جا باشد

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

سلام @mehdi.shahabbasian
از jetstream استفاده میکنم

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

سلام وقتتون بخیر!
بهترین سوالی که میشه پرسید اینه که چه دستکاری می‌خوای انجام بدی؟

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

سلام مرسی @Rp76
فیلد دیتابیس و ویو رو به number تغییر دادم میخوام کاربر بتونه با شماره تلفن لاگین کنه

Armin Rahmati
Armin Rahmati
@arminrahmati999

سلام.
ابتدا به آدرس زیر برین:

app\Http\Controllers\Auth

سپس فایل زیر رو باز کنین:

LoginController.php

فانکشن زیر رو داخل این فایل قرار بدین:

public function username()
    {
        return 'number';
    }

مقداری که return میشه باید با نام متغییری که داخل مایگریشن تعریف کردین یکی باشه، به عنوان مثال اگه میخواین با شماره موبایل لاگین کنین و نام این فیلد رو number در نظر گرفتین، مقداری هم که در این قسمت return میکنین باید number باشه.
موفق باشید.

NESYOU
NESYOU
@nesyourys

تخصص: توسعه دهنده بک اند

@arminrahmati999
ولی همچین فایلی ندارم دارم از لاراول 8 استفاده میکنم

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام