Authentication
File:
packages/skilldo/framework/src/Support/Auth.phpNamespace:
SkillDo\Support\Auth
1. Auth là gì?
Authentication (Xác thực) là quá trình hệ thống nhận diện việc người dùng tiến hành đăng nhập, kiểm tra thông tin tài khoản hợp lệ, ghi nhớ session, cookies và trả về các thông tin đối tượng User đang thao tác.
Class SkillDo\Support\Auth của nền tảng cung cấp một tập hợp các phương thức tĩnh (Facade-like) vô cùng thân thiện giúp bạn thao tác với thông tin của người dùng hiện hành nhanh chóng mà không cần phải gọi qua DB liên tục, vì dữ liệu có cơ chế Cache & Session tối ưu.
2. Cách Gọi Thường Dùng
Vì các method của Auth được khai báo là tĩnh (static), bạn có thể gọi trực tiếp ở bất kỳ tệp Model, Controller, View hay Helper nào.
Ví dụ:
use SkillDo\Support\Auth;
if (Auth::check())
{
$userName = Auth::user()->username;
$userId = Auth::id();
}
3. Danh Sách Phương Thức
3.1 Xác thực người dùng
Auth::check
Method Auth::check Kiểm tra user đã đăng nhập hệ thống hay chưa nếu đã đăng nhập kết quả sẽ là true ngược lại là false
$isLogin = Auth::check()
Auth::user
Method Auth::user trả thông tin user đang đăng nhập nếu không có user đăng nhập method trả về một mãng rỗng
$user = Auth::user()
Auth::id
Method Auth::id trả id user đang đăng nhập nếu không có user đăng nhập method trả về 0
$userId = Auth::id();
Auth::login
Method Auth::login đăng nhập user được chỉ định vào hệ thống
| Credentials Key | Type | Description |
|---|---|---|
| username | string |
|
| password | string | $12 |
$credentials = [
'username' => 'my_username',
'password' => 'my_password',
]
$loginResult = Auth::login($credentials);
if(!is_skd_error($loginResult))
{
echo "login successful"
}
else
{
echo $loginResult->first();
}
Auth::logout
Method Auth::logout tiền hành đăng xuất user hiện đang đăng nhập trong hệ thống
Auth::logout();
Auth::setCookie
Method Auth::setCookie tiền hành ghi đè thông tin user của bạn lên thông tin user đang đăng nhập hệ thống, thường được dùng để cập nhật lại thông tin của user đang đăng nhập sau khi thay đổi thông tin
$user = Auth::user();
$user->firstname = 'Elon';
$user->lastname = 'Mệt';
Auth::setCookie($user);
Auth::generatePassword
Method Auth::generatePassword tiền hành tạo ra chuổi mật khẩu, trường hợp bạn quên mật khẩu user và cần reset lại mật khẩu có thể sử dụng method này tạo ra mật khẩu mới và ghi đè mật khẩu củ
$user = Auth::user();
$password = Auth::generatePassword('new_password', $user->salt);
$user->password = $password;
$user->save();
Auth::passwordConfirm
Method Auth::passwordConfirm kiểm tra mật khẩu người dùng nhập vào có khớp với mật khẩu của user đang đăng nhập hay không
$passwordConfirm = Auth::passwordConfirm('my_password', $user);
if($passwordConfirm)
{
echo "Password is correct";
}
else
{
echo "Password is incorrect";
}
3.2 Phân quyền người dùng
Auth::hasCap
Method Auth::hasCap kiểm tra user đang đăng nhập có quyền sử dụng chức năng không, nếu có quyền trả về true ngược lại là false
if(Auth::hasCap('edit_post')) {
//permission successfully
}
Auth::getCap
Method Auth::getCap trả về các quyền user đang đăng nhập có thể sử dụng
dd(Auth::getCap())
/**
"loggin_admin" => true
"switch_themes" => true
"edit_themes" => true
...
*/