Tuesday, May 19, 2015

Contoh penggunaan facade Auth::

1. Semak pengguna semasa sudah login :

if (Auth::check())
{
    echo "Yay! You're logged in.";
}

Nota :
 - Laravel akan semak jika session semasa mempunyai id user,
    jika ada - user akan di tarik dari pangkalan data.
    jika tidak - Laravel semak cookie "remember me".
       Jika ada  user akan di tarik dari pangkalan data.
       Jika tidak - pulangkan false

2. Pastikan pengguna tidak Logged In:

 
if (Auth::guest())
{
    echo "Bummer! You need to log in, dude.";
}


Nota : mengguna pakai  !Auth::check()

3. Maklumat pengguna semasa :
 
$user = Auth::user();
if ($user)
{
    echo "Hello $user->name";
}

Nota : secara asal, samada null, atau name akan dipulangkan, namu setting untuk pemulangan maklumat boleh di ubah dengan mengubah Driver atau Model.

4. Ubah Maklumat Authentication Driver
-Ini hanya berlaku bila anda masih ingin guna pakage Auth, cuma nak ubah driver shj.
Ubah fail app/config/auth.php dan tukar driver.
 
'driver' => 'database', // ada 2 pilihan eloquent / database

5. Ubah Maklumat Authentication Model

Ubah fail app/config/auth.php dan tukar model.

 'model' => 'MyApp\Models\User',

6. Ubah Maklumat Authentication Table

Ubah fail app/config/auth.php dan tukar table.

 'table' => 'administrators',

Nota :  kolum wajid id , password , dan login spt :  email atau username

7. Ubah email peringatan kata kunci.

Ubah fail reminder.blade.php dalam direktori app/views/emails/auth .
Lain2 fail yang berkaitan :

views/password/remind.blade.php
views/password/reset.blade.php

atau

Ubah lokasi fail dalam app/config/auth.php .

'reminder' => array(
        'email' => 'emails.auth.reminder',
    ), 

8. Ubah masa tamat untuk ubah katakunci :

Ubah fail app/config/auth.php dan tukar :

    'reminder' => array(
        'expire' => 60,
    ),


9. Ubah jadual peringatan kata kunci :

Ubah fail app/config/auth.php dan tukar :


'reminder' => array(
        'table' => 'password_reminders',
    ),
 9. Arahan artisan untuk peringatan kata kunci :

  • php artisan auth:reminders - cipta jadual peringatan katakunci
  • php artisan auth:clear-reminders - bersihkan peringatan kata kunci yang telah tamat
  • php artisan auth:reminders-controller - cipta kawalan untuk peringakan katakunci
10. Semak samada pengguna dibenarkan melalui peringatan cookie :

if (Auth::viaRemember())
{
    echo "Aha, you logged in with the remember me cookie.";
}
else
{
    echo "You were already logged in for this request.";
}

11. Log  masuk tanpa Without Sessions atau Cookies

$logged_in = Auth::once(['username' => 'test', 'password' => 'test']);
if ( ! $logged_in)
{
    throw new Exception('not logged in');
}

Nota : pengguna dianggap  log masuk untuk permintaan semasa, biasa diguna untuk percubaan aplikasi.


12. Sahkan kata kunci pengguna :

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

Nota : ini akan menaktifkan  auth.attempt even.


13. Pengesahan asas bagi pengguna :

$result = Auth::basic();
if ($result)
{
    throw new Exception('invalid credentials');
} 

Jika bukan email

$result = Auth::basic('username');
if ($result)
{
    throw new Exception('invalid credentials');
}

atau boleh juga

$result = Auth::basic('email', $request);

Nota : akan aktifkan auth.attempt event, jika berjaya auth.login event dilancarkan.
 Auth::basic() menggunkan auth.basic filter .


14. Log masuk pengguna guna kod :

$success = Auth::attempt(['username' => 'me', 'password' => 'pass']);
 
OR

$success = Auth::attempt($credentials, true); // true = remember me


OR
Kalau nak cek password betuk ke tidak :
$success = Auth::attempt($credentials, false, false); 



14. Listening for Authentication Attempts :

Auth::attempting(function($credentials, $remember, $login)
{
    // Log the attempt or some other such activity
});

Nota : samada diletakkan dalam fail helpers untuk for event listening atau app/start/global.php.

15. Log masuk pengguna secara manual

$user = User::find($user_id);
Auth::login($user); 

atau

Auth::login($user, true); // true adalah untuk remember me

Nota : akan aktifkan auth.login event.

15. Log masuk pengguna denga ID secara manual


$user = Auth::loginUsingId($user_id);
if ( ! $user)
{
    throw new Exception('Error logging in');
}

atau

Auth::loginUsingId($user_id, true); // true adalah untuk remember me

Nota : kaedah yang sama dengan Auth::login().


16. Log masuk pengguna guna ID tanpa sessiong dan cookies :

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


17. Log keluar pengguna :

Auth::logout();

Events :

auth.logout 

Listen :

Event::listen('auth.logout', function($user)
{
    $message = sprintf('User #%d logged out', $user->id);
    Log::info($message);
});


18. Dapatkan Cookie Jar yang digunasebagai pengesahan pengguna :

$cookies = Auth::getCookieJar();


19. Set Cookie Jar untuk guna sebagai pengesahan pengguna :

Auth::setCookieJar($cookie_jar);

20. Dapatkan  nama Remember Me Cookie:

$remember_name = Auth::getRecallerName();


21. Dapatkan nama Cookie yang di guna untuk pengesahan :

$cookie_name = Auth::getName();

22. Dapatkan pengguna semasa yang sah dalam Cached :

$user = Auth::getUser();
if ( ! $user)
{
    echo "No user is currently authenticated.";
}

Nota :  Auth::user() - akan cuba sahkan pengguna ...
         Auth::getUser() - hanya akan pulangkan user sekiranya telah disahkan.



23. Set pengguna semasa yang disahkan :

$user = User::find($user_id);
Auth::setUser($user);

Nota : arahan ini tidak log masuk pengguna, cuma set pengguna untuk request semasa.

24. Dapatkan Event Dispatcher untuk pengesahan :

$events = Auth::getDispatcher();

25. Set Event Dispatcher untuk pengesahan :

Auth::setDispatcher($events);

26. Dapatkan Authentication Request Instance :

$request = Auth::getRequest();

27. Set the Request Instance untuk pengesahan :

Auth::setRequest($request);

28. Dapatkan Authentication User Provider :

$provider = Auth::getProvider();

29. Set the Authentication User Provider :

Auth::setProvider($user_provider);

30. Dapatkan Session Store Used for Authentication :

$request = Auth::getSession();

31. Cipta pangkalan data untuk Auth Driver :

$driver = Auth::createDatabaseDriver();
 32. Cipta Auth Eloquent Driver :

$driver = Auth::createEloquentDriver();
 
33. Performing a Stateless HTTP Basic Login :

$result = Auth::onceBasic();
if ($result)
{
    throw new Exception('invalid credentials');
}

atau

$result = Auth::onceBasic('username');
if ($result)
{
    throw new Exception('invalid credentials');
}

atau

$result = Auth::onceBasic('email', $request);

No comments:

Post a Comment