🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Alireza far
حل شد. لاگین با شماره تلفن و یا هر چیزی به غیر از ایمیل
مهرداد سامی حل شده توسط مهرداد سامی

با سلام

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

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

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

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

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

سلام 

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

 

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

بهترین پاسخ
مهرداد سامی ۰۲ بهمن ۱۳۹۹، ۱۱:۴۷

حل شد.

ممکنه بعضی از دوستان همچین مشکلی داشته باشن و بعد از تست کردن متوجه شدم که مشکل از ورژن پکیج 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 ۰۴ بهمن ۱۳۹۹، ۱۴:۰۹