NESYOU
3 سال پیش توسط NESYOU مطرح شد
8 پاسخ

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

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


ثبت پرسش جدید
NESYOU
تخصص : توسعه دهنده بک اند
@nesyourys 3 سال پیش آپدیت شد
0

Config/fortify.php

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

 'username' => 'email',

    'email' => 'email',

به این

    'username' => 'username',

    'username' => 'username',

درست شد

@arminrahmati999
@Rp76
@eniack
@mehdi.shahabbasian


مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 3 سال پیش مطرح شد
2

سلام

بستگی داره از چه سیستمی استفاده میکنید که من با توجه به سوالتون حدس میزنم از 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 موجوده و میتونید هرکدومو که نیازه در خود کنترلر بازنویسی کنید


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
2

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

php artisan route:list

NESYOU
تخصص : توسعه دهنده بک اند
@nesyourys 3 سال پیش مطرح شد
0

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


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 3 سال پیش مطرح شد
1

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


NESYOU
تخصص : توسعه دهنده بک اند
@nesyourys 3 سال پیش مطرح شد
0

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


Armin Rahmati
@arminrahmati999 3 سال پیش مطرح شد
1

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

app\Http\Controllers\Auth

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

LoginController.php

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

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

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


NESYOU
تخصص : توسعه دهنده بک اند
@nesyourys 3 سال پیش مطرح شد
0

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


NESYOU
تخصص : توسعه دهنده بک اند
@nesyourys 3 سال پیش آپدیت شد
0

Config/fortify.php

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

 'username' => 'email',

    'email' => 'email',

به این

    'username' => 'username',

    'username' => 'username',

درست شد

@arminrahmati999
@Rp76
@eniack
@mehdi.shahabbasian


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

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