1. Cài đặt thư viện
composer require subfission/cas
2. Thêm các dòng sau vào file .env
CAS_HOSTNAME=cas-domain
CAS_REAL_HOSTS=cas-domain
CAS_LOGOUT_URL=cas-logout-url"
CAS_CLIENT_SERVICE=your-domain
CAS_URI="/cas"
CAS_ENABLE_SAML=false
3. Chạy lệnh sau
php artisan vendor:publish --provider="Subfission\Cas\CasServiceProvider"
4. File app/Http/Kernel.php, thêm vào dòng sau
protected $routeMiddleware = [
...
'cas.auth' => \Subfission\Cas\Middleware\CASAuth::class
];
5. File routes/web.php, chỉnh sửa như sau
Route::middleware('cas.auth')->group(function(){
Route::get('logout',[CasController::class,'logout']);
Route::get('/', [HomeController::class,'index']);
// các route cần chạy sau khi đã đăng nhập cas sso
...
});
6. Thêm file CasController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;class CasController extends Controller
{
public function logout(){
cas()->logout('', url('/'));
}
}
7. Để lấy thông tin người dùng từ CAS SSO (\Subfission\Cas\Facades\Cas), có các phương thức sau:
- Cas::isAuthenticated(): Kiểm tra đã đăng nhập chưa
- Cas::getCurrentUser(): Lấy tên tài khoản (VD: nguyenhoangkieutrinh)
- Cas::getAttributes(): Lấy các thông tin khác mà dịch vụ SSO kia có thể cung cấp, VD:
[
'email' => 'nguyenhoangkieutrinh@gmail.com',
'full_name' => 'Nguyễn Hoàng Kiều Trinh',
'roles' => ['admin', 'editor']
]