লারাভেলে অথেন্টিকেশন চেক | Check Auth in Controller / Blade (পার্ট ৮.৩)
লারাভেল কন্ট্রোলার ও ব্লেড থেকে ব্যবহারকারীর অথেন্টিকেশন স্টেটাস যাচাই করার পদ্ধতি Auth::check() ও @auth ডিরেক্টিভ ব্যবহার করে দেখানো হয়েছে। ( Laravel: Check Auth in Controller / Blade | ( Bangla ) — Part 8.3 )
প্রিয় পাঠক, লারাভেল কন্ট্রোলার এবং ব্লেড থেকে অথেন্টিকেশন চেক করা নিয়ে আলোচনা করবো।
কন্ট্রোলারে, Auth::check() দিয়ে চেক করা যায় ইউজার লগিন করা আছে কিনা:
public function index() {
if(Auth::check()) {
// ইউজার লগিন আছে
} else {
// লগইন নেই
}
}
এবং ব্লেডে @auth এবং @guest ডিরেক্টিভ দিয়ে:
@auth
// লগিন ইউজারের জন্য কন্টেন্ট
@endauth
@guest
// অতিথিদের জন্য লগইন লিঙ্ক
@endguest
এই ব্লগে, আমরা লারাভেল ১০-এ কন্ট্রোলার এবং ব্লেড টেমপ্লেটে অথেনটিকেশন (অথ) চেক করার পদ্ধতি সম্পর্কে শিখব। আমরা উদাহরণ, বিভিন্ন ব্যবহারের ক্ষেত্রে এবং একটি ছোট প্রোগ্রামের মাধ্যমে বিষয়টি বিস্তারিতভাবে আলোচনা করব।
ভূমিকা
লারাভেল একটি জনপ্রিয় পিএইচপি ফ্রেমওয়ার্ক যা ওয়েব অ্যাপ্লিকেশন তৈরিতে ব্যবহৃত হয়। এটিতে অথেনটিকেশন সিস্টেম বিল্ট-ইন রয়েছে যা ব্যবহারকারীদের অ্যাপ্লিকেশনে লগ ইন এবং লগ আউট করতে দেয়। লগ ইন করা বর্তমান ব্যবহারকারীকে অ্যাক্সেস করার জন্য, আমরা কন্ট্রোলার এবং ব্লেড টেমপ্লেটে অথ চেক করতে পারি।
কন্ট্রোলারে অথ চেক
কন্ট্রোলার হল লারাভেলের এমন একটি বর্গ যা HTTP অনুরোধগুলিকে পরিচালনা করে। আমরা middleware
মেথড ব্যবহার করে কন্ট্রোলারে অথ চেক করতে পারি। উদাহরণ হিসেবে, নীচের কন্ট্রোলার কেবলমাত্র অথেনটিকেটেড ব্যবহারকারীদেরই অনুমতি দেবে:
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class UserController extends Controller
{
public function show(Request $request)
{
// অথ চেক
if (!Auth::check()) {
return redirect('/');
} // অথেনটিকেটেড ব্যবহারকারীর তথ্য দেখানো
$user = Auth::user();
return view('user.profile', ['user' => $user]);
}
}
ব্লেডে অথ চেক
ব্লেড হল লারাভেলের জন্য একটি টেমপ্লেটিং ইঞ্জিন। আমরা @auth
এবং @guest
ডিরেক্টিভ ব্যবহার করে ব্লেড টেমপ্লেটে অথ চেক করতে পারি। উদাহরণ হিসেবে, নীচের ব্লেড টেমপ্লেট শুধুমাত্র অথেনটিকেটেড ব্যবহারকারীদের জন্য একটি লিঙ্ক প্রদর্শন করবে:
<nav>
@auth
<a href="/dashboard">ড্যাশবোর্ড</a>
@endauth
@guest
<a href="/login">লগ ইন</a>
@endguest
</nav>
একটি ছোট প্রোগ্রাম
লারাভেল ১০-এ অথ চেক বিকাশের জন্য, আমরা নিচের ছোট প্রোগ্রামটি তৈরি করতে পারি:
// রুট ফাইল, web.php
Route::get('/user', [UserController::class, 'show'])->middleware('auth');
// UserController
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;class UserController extends Controller
{
public function show(Request $request)
{
// অথ চেক
if (!Auth::check()) {
return redirect('/');
} // অথেনটিকেটেড ব্যবহারকারীর তথ্য দেখানো
$user = Auth::user();
return view('user.profile', ['user' => $user]);
}
}// user.profile ব্লেড টেমপ্লেট
@extends('layouts.app')@section('content')
<h1>অথেনটিকেটেড ব্যবহারকারী</h1>
<p>নাম: {{ $user->name }}</p>
<p>ইমেইল: {{ $user->email }}</p>
@endsection
এই প্রোগ্রামটি একটি UserController
তৈরি করে যা /user
রুটে অ্যাক্সেসযোগ্য। এই কন্ট্রোলারটি auth
মিডলওয়্যার দ্বারা মিডল করা হয়েছে, যা অথ চেক করে। অথেনটিকেটেড ব্যবহারকারীরা user.profile
ব্লেড টেমপ্লেট দেখতে সক্ষম হবে যেখানে তাদের তথ্য প্রদর্শিত হবে। অথেনটিকেটেড নয় এমন ব্যবহারকারীরা /
রুটে রিডিরেক্ট করা হবে।
উপসংহার
কন্ট্রোলার এবং ব্লেড টেমপ্লেটে অথ চেক করা লারাভেল অ্যাপ্লিকেশনে অথেনটিকেশন প্রয়োগ করার একটি গুরুত্বপূর্ণ দিক। এটি অথেনটিকেটেড ব্যবহারকারী এবং অথেনটিকেটেড নয় এমন ব্যবহারকারীদের জন্য বিভিন্ন কন্টেন্ট এবং ফাংশনালিটি প্রদর্শন করতে ব্যবহার করা যেতে পারে।
আশা করি অথেন্টিকেশন চেক করার ধারণা পেয়েছেন!
এই বিষয়ে আরো জানতে,
Official Docs Determining If The Current User Is Authenticated
Official Docs Blade: Authentication Directives পড়ুন৷