حل شد. لاگین با شماره تلفن و یا هر چیزی به غیر از ایمیل

پرسیده شده
فعالیت 1187 روز پیش
دیده شده 730 بار
0

با سلام

بنده دارم در پروژه ای از jwt استفاده میکنم. سوال من اینجاست که میخوام به جای لاگین با ایمیل و پسورد کاربر شماره تلفن خودش و پسوردشو وارد کنه.

با یکی از دوستان لاراول کارم صحبت کردم گفتن که کل بحث authentication رو به صورت دستی بنویسم و از پروژه های آماده استفاده نکنم.

ولی متاسفانه زمان کافی برای اینکار ندارم.

اگه لطف کنید راهنمایی کنید که نیازی به اینکار نباشه ممنون میشم.

قصد دارم طی آپدیت بعدی یوزر که شماره تلفنشو وارد کرد با کد تاییدی لاگین کنه.

فایل پیوست

Alireza far
Alireza far

2 بهمن 99

1
حذف شده

سلام 

این موضوع با یک تغییر داخل فایل LoginController انجام میشه، فقط یک متد داخل LoginController ایجاد کنید به نام username و نام اون فیلدی که میخواید به عنوان یوزرنیم استفاده بشه رو برگردونید.

 

این لینک هم میتونه بهتون کمک کنه.

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

2 بهمن 99

حذف شده
متاسفانه این به کارم نیومد. من کنترلر های loginController رو ندارم و طبق مستندات خود jwt پیش رفتم و مراحل authentication رو پیش رفتم کنترلر دیگه ای بود که داخل Illuminate\Foundation\Auth\AuthenticatesUsers.php این هست. اینم ندارم. از لاراول 8 استفاده میکنم. راه حل دیگه ای در نظر دارید ؟
Alireza far

2 بهمن 99

1
حذف شده

حل شد.

ممکنه بعضی از دوستان همچین مشکلی داشته باشن و بعد از تست کردن متوجه شدم که مشکل از ورژن پکیج tymon/jwt-auth هست. شما باید حتما ورژن ۱.۰ رو نصب کنید:

composer require tymon/jwt-auth:^1.0

 تا بتونید به راحتی ورودی تابع attemp رو تغییر بدید.

به این صورت:

$credentials = [ 'username' => $request->username, 'password' => $request->password];

        if (! $token = Auth::guard('api')->attempt($credentials)) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

به جای username میتونید هر فیلدی که دوست دارید بذارید.

 

فایل پیوست

Alireza far

توسط

Alireza far

4 بهمن 99

حذف شده
سلام , برای لاراول 8.54.0 ورژن 1.0 jwt به کانفیلیکت برخورد می کنه ..
Faraz salehi

30 مرداد 00