راکت

خطا در ثبت نام کاربر

6 پاسخ

سلام مهندسین روزتون بخیر
این کد من چه مشکلی داره ؟؟ چون وقتی میخام لاگین کنم میگه که اطلاعات ورود شما با هم مطابقت نداره
میدونم که مشکل در قسمت ذخیره پسورد اما نمیدونم چه مشکلیه و چطوری حلش کنم

// i,m use Illuminate\Support\Facades\Hash;
       $inputs=$request->all();
       $pasword=Str::random(10);
       $user=User::create([
           'name'=>$inputs['name'],
           'email'=>$inputs['email'],
           'level'=>'clerk',
           'password'=>Hash::make($pasword),
       ]);

به این دلیل میدونم مشکلم پسورد چون وقتی دستی توی دیتابیس رمزم رو تغییر میدم مشکلم حل میشه.

ثبت پرسش جدید

پاسخ‌ها

6
حسام موسوی
حسام موسوی
@hesammousavi

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

خوب مشخصه شما دارید یک رشته random میسازید که احتمالا نمیدونید چی هست و بعد میاید اون رشته random رو هش میکنید ! خوب آیا با ایمیل و اون رشته random لاگین میکنید ؟
قاعدتا نه
پس همونطور که ایمیل و نام رو از کاربر میگیرید باید اینجا password رو هم از کاربر بگیرید و hash بفرمایید

محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

@hesammousavi
سلام - من پسورد رندوم تولید شدم رو برای کاربرم ایمیل میکنم .
فهمیدم مشکلم کجاست اما بلد نیستم چطوری حلش کنم لطفا راهنماییم کنید - چون توی جدول user فیلد passsword توی

protected $hidden = ['password', 'remember_token'];

این قسمت تعریف شده نمیتونم اون رو ست کنم - لطفا راهنمایی کنید بدون اینکه این تنظیمات رو به هم بریزم چطوری پسوردم رو ست کنم ؟

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

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

سلام
محسن جان سوال شما به نظرم‌ درست نمیاد
شما در بخش اول سوالتون یک رشته راندوم رو که خودتون هم نمیدونین چیه میسازی و هش میکنی و بعد ذخیره که اینجا اقای موسوی گفتن مشکلتون و نحوه رفعش حالا شما در بخش دوم مشکل تون رو مرتبط با مخفی کردن فیلد پسورد در مدل یوزر میدونین چرا؟!( این پراپرتی برای اینکه هروقت شما اطلاعات کاربر رو خواستین همه ی فیلدها رو بهتون برگردونه جز اون دوتایی که تویی ارایه پراتکت هستن)

در ادامه بحث شما برای کاربر یک رمز تصادفی ایجاد میکنیدو هش و در ادامه براش ذخیره میکنین حالا براش همون رمز تصادفی و هش نشده رو ایمیل میکنین درسته؟ حالا مشکل چیه؟ در اصل این روش باید کار کنه درسته؟ یا مشکل دارین باهاش؟؟

Reza Jashnsaz
Reza Jashnsaz
@rezajashnsaz0011

تخصص: مهندس نرم افزار

کد چک کردن اطلاعات کاربر موقع لاگینو بذار

محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

@juza66
@rezajashnsaz0011
سلام @juza66 بله آقای موسوی درست میگید من یکم بد توضیح دادم اشکالم رو
یک توضیح مختصر بدم - توی سایت من یک مدیر میخاد چندتا پشتیبان برای پنل خودش تعریف کنه
من طوری پیاده سازی کردم که وقتی مدیر خواست یک پشتیبان تعریف کنه فقط کافیه اطلاعات اون پشتیبان ( نام - ایمیل - شماره تلفن) رو وارد کنه - و من توی جدول یوزر یک کاربر با این مشخصات رو ذخیره میکنم و یک رمز تصادفی برای اون تولید میکنم.
و یوزر و پسورد رو برای اون ایمیل میکنم تا بتونه بعدا لاگین کنه.
حالا من این پسورد رو که تولید میکنم مشکلی نداره تولید میشه حتی به صورت حش شده توی جدول ذخیره میشه .اما زمانی که میخام لاگین کنم میگه اطلاعات شما با هم تطابق نداره(و میدونم این ارور از پسورد تولید شده است، چون به صورت دستی وقتی توی مای اسکیوال یک پسورد از قبل تعریف شده رو جایگزین میکنم درست میشه )( و جالبه بعضی وقتا ولی درست پسورد تولید میشه و کار میکنه)
من به جدول لاگین هم دستی نزدم - یعنی همون login controller پیش فرض هستش.

public function clerk_store(Requests $requests){}
$inputs=$request->all();
$password=Str::random(8);
$user = new User();
$user->password = Hash::make($password);
$user->email =$inputs['email'];
$user->name =$inputs['name'];
$user->level='clerk';
$user->active=false;
$user->save();
}
سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

شما به جای استفاده از متد هش hash از متد bcrypt استفاده کن

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

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