آموزش لاراول – چند نکته درباره لاگین کاربر

  • خانه
  • آموزش لاراول – چند نکته درباره لاگین کاربر
Image تحقیقات

آموزش لاراول – چند نکته درباره لاگین کاربر

با سلام و درود

امروز می خوام جند نکته درباره لاگین کردن کاربر در لاراول بگم و یه سری نکات آموزشی ریز رو عرض کنم.

 

1-اعتبار سنجی کاربر بدون عمل لاگین (Validating User Credentials Without Login)

شاید بعضی وقت ها نیاز داشته باشیم یک کاربر رو اعتبار سنجی کنیم.یعنی بدون اینکه از دستور auth::check  استفاده کنیم و متوجه شیم همچین کاربری وجود دارد یا خیر .

برای اینکار از دستور (Auth::validate($credentials استفاده می کنیم. credentials$ همان آرایه ای هست که شامل یوزر و پسورد کاربر می باشد.

مثال :

به طور معمول برای چک کردن اعتبار کاربر از کد زیر استفاده می کنیم و کاربر را لاگین می نماییم. (مثلا کاربری با یوزر ali و پسورد 123456)

$credentials = [
    'username' => 'ali',
    'password' => '123456',
];
$valid = Auth::validate($credentials);
if ( ! $valid)
{
    throw new Exception('Invalid credentials');
}

حالا میخوایم بدون عمل لاگین متوجه بشیم که  کاربری با یوزر ali و پسورد 123456 در دیتابیس و سایت ما وجود دارد یا خیر.

$credentials = [
    'username' => 'ali',
    'password' => '123456',
];
$valid = Auth::validate($credentials);
if ( ! $valid)
{
    throw new Exception('Invalid credentials');
}
  •  در خط 5 با استفاده از متد  Auth::validate چک کردیم آیا همچین کاربری وجود دارد یا خیر.(بدون اینکه بخوایم لاگین کنیم)

 

2- دسترسی به مشخصات کاربر بعد از لاگین (Accessing The Logged In User)

بعد از اینکه کاربر یک بار دز سایت ما لاگین کرد ما میتوانیم به مدل user  دسترسی داشته باشیم(User model / record) و مشخصات کاربر را بخوانیم.

در این روش هیچ  cookies و یا session ست نمی شود و کاربر فقط برای درخواست جاری لاگین است .

مثال : دسترسی به ایمیل کاربر

$email = Auth::user()->email;

مثال : دسترسی به ID کاربر

$id = Auth::id();
  •  برای گرفتن ID کاربر یک راست  می توانیم از متد id استفاده می کنیم به جای نوشتن کد زیر
$id = Auth::user()->user_id;

 

3- لاگین کردن کاربر به صورت دستی (Manually Logging In Users)

بعضی مواقع لازم است تا خودمان یک کاربر خاص را لاگین نماییم.این کار از 2 طریق امکان پذیر است یا به وسیله ی ID کاربر یا با استفاده از شی ای از کلاس کاربر.

مثال : با استفاده از Id کاربر و استفاده از متد loginUsingId

Auth::loginUsingId(1);

مثال : با استفاده از شی ای از کلاس User و متد Login

$user = User::find(1);

Auth::login($user);

 

4 – لاگین کردن کاربر برای یک مرتبه (Logging A User In For A Single Request)

در این روش عمل لاگین یک بار انجام شده به این صورت که وقتی صفحه ی از سایتمان باز شود و یا متد دیگری را اجرا کنیم دیگر کاربر لاگین نمی باشد. این کار با استفاده از متد Auth::once انجام میشود.

مثال :

$credentials = [
    'username' => 'ali',
    'password' => '123456',
];
if (Auth::once($credentials))
{
    //دستورات دلخواه
}

 

 

5-لاگین کردن کاربر برای یک مرتبه با ID کاربر (Logging in a User by ID Without Sessions or Cookies)

مانند مبحث قبلی کاربر یک مرتبه لاگین می نماید با این تفاوت که از ID کاربر استفاده می شود به جای username  و password.

این کار با استفاده از متد onceUsingId انجام می شود.

$user_id=4;
$success = Auth::onceUsingId($user_id);
if ( ! $success)
{
    throw new Exception('failed!');
}

- خروج کاربر (Logging A User Out Of The Application)

برای خروج کاربر هم که حتما اطلاع دارین از متد Auth::logout باید استفاده کرد.

Auth::logout();

خب این جلسه آموزش فریم ورک لاراول هم به پایان رسید

موفق باشید.