سلام استاد متود attempt برای من حتی وقتی ایمیل و پسورد درست رو میزنم false برمیگردونه! stackoverflow گفته بودن پسورد رو bycrypt کنم درست میشه ولی من پسوردم bycrypt بود.
سلام ...
نیازی به bcrypt کردن نیست ... خود اون متد این کار رو انجام میده ... از متد Attemp به چه صورت استفاده میکنید ... تیکه کدتون رو ارسال کنید .
مهرداد سامی۱۹ تیر ۱۳۹۸، ۲۱:۵۹
درسته ! وقتی یوزر رو رجیستر میکنم پسوردش رو bcrypt میکنم!
میخام سایتی طراحی کنم که ادمین هم داشته باشه و کاربر ادمین در صفحه مربوط به لاگین ادمین بتونه لاگین بکنه و کاربر مربوط به صفحه اصلی سایت هم در صفحه خودش. همچنین روشهای وزرود هر دو با هم کمی متفاوت هست. یعنی برای ادمین میخام جند تا مساله اضافی رو موقع لاگین چک کنم. ایا باید متدهای لاگین متفاوت داشته باشم؟ یعنی پوشه auth رو توی ادمین کپی کنم و تغییرات مربوطه رو اجرا کنم و ..؟ نحوه میدلویر درست کردنش چطوره؟
با تشکر
سید حسام الدین موسوی۲۰ تیر ۱۳۹۸، ۰۶:۱۶
سلام ...
در این حالت شما بهتره که کلا یک controller دیگه مثلا به نام adminController طراحی کنید و لاگین ادمین اگه با حالت عادی تفاوت داره رو بنویسید ... البته تا جایی که میتونید این تفاوتها رو در داخل جاهای دیگه قرار بدید تا بتونید از همون Login پیش فرض استفاده کنید ولی اگه امکانش نیست یک کنترلر جدید بسازید.
برای middleware هم شما یک فیلد جدید به جدول user اضافه میکنید به نام is_admin ... و داخل middleware چک میکنید که این یوزر admin هست یا خیر :
use Closure;
class Admin {
public function handle($request, Closure $next)
{
if ( Auth::user() && Auth::user()->isAdmin() )
{
return $next($request);
}
return redirect('home');
}
}
این middleware رو هم داخل kernel.php وارد میکنید داخل قسمت $routeMiddleware ایجاد میکنید :
داخل کنترلر و یا فایل web.php هرجا نیاز داشتید که از این middleware استفاده کنید میتونید اسم admin رو اونجا قرار بدید :
Route::get('/', function () {
return view('welcome');
})->middleware('admin');
// AdminController.php
class AdminController extends Controller
{
public function __construct()
{
$this->middleware('admin')->except('login');
}
مهرداد سامی۲۰ تیر ۱۳۹۸، ۰۹:۳۲
با تشکر جناب سامی اولا ببخشید سوالم رو زیر یک سوال دیگه نوشتم که مربوط به attempt هست. دوما سایتی که نوشتم لاگین میکنه به قسمت ادمین اما وقتی رفرش میکنم دوباره میره تو صفحه لاگین. یعنی انگار جایی ثبت نمیشه که این شخص تازه لاگین کرده و قرار نباشه برای ورود به هر صفحه و حتی رفرش دوباره بره تو صفحه لاگین
سید حسام الدین موسوی۲۱ تیر ۱۳۹۸، ۰۲:۱۱
متد login که نوشتید رو ارسال کنید .
مهرداد سامی۲۱ تیر ۱۳۹۸، ۱۸:۰۶
اصلا متد جدید ننوشتم. همون متد پیشفرض لاراول. حتی دوباره لاراول رو نصب کردم و بازم همین مشکل هست. این روت من هست
و کنترلر dashboard هم به میدلویر auth وصل کردم توی construct
وقتی ادرس site/admin رو میزنم میره تو صفحه لاگین که تا اینجا درسته. وقتی مشخصات رو وارد میکنم و دکمه ورود رو میزنم میره تو صفحه داشبورد که تا اینجا هم منطقیه. اما کافیه یه رفرش بزنم. دوباره میره تو صفحه لاگین
سید حسام الدین موسوی۲۲ تیر ۱۳۹۸، ۰۶:۰۳
همچنین در صفحه home این اتفاق نمیفته. یعنی وقت لاگین کردیم با رفرش کردن نمیره تو صفحه لاگین و همه چی درسته. فقط تو روت بالا اینطوریه. یعنی یکبار لاگین میشه و حتی وقتی Auth::user() رو خروجی میگیرم جواب درست میده اما با رفرش.....
سید حسام الدین موسوی۲۲ تیر ۱۳۹۸، ۰۷:۰۲
با مرورگر دیگه تست کنید اگه باز هم همین مشکل بود کدتون رو به آدرس MehrdadSaami@gmail.com ارسال کنید تا ببینم مشکلش چی هست.
مهرداد سامی۲۲ تیر ۱۳۹۸، ۰۸:۴۵
با دقت لاراول رو از اول نصب کردم و مشکل حل شد. ولی بالاخره نفهمیدم چرا اون مشکل به وجود اومده بود. با تشکر از شما که وقت گذاشتید.
سید حسام الدین موسوی۲۳ تیر ۱۳۹۸، ۰۶:۴۷
سلام و وقت بخیر
استاد عزیز از دوره ی کاربردی انتظار میره کارهای خاصی صورت بگیره
من نیاز دارم بدونم چطور چند گروه کاربری ایجاد بشه با guardها و اینکه چطور ثبت نام بدون پسورد و تنها با احراز هویت پیامکی صورت بگیره و شخص کد تائید که وارد کرد ما لاگینش کنیم.