এটি লারাভ 5.2.x এবং এর চেয়ে বড় এর জন্য। আপনি যদি এইচটিটিপিএস এবং এইচটিটিপি-র উপর অন্যদের উপর কিছু সামগ্রী পরিবেশন করার বিকল্প পেতে চান তবে আমার কাছে কাজ করা একটি সমাধান এটি। আপনি ভাবতে পারেন, কেউ এইচটিটিপিএসের মাধ্যমে কেন কেবল কিছু সামগ্রী সরবরাহ করতে চায়? এইচটিটিপিএস-এর মাধ্যমে কেন সব কিছু পরিবেশন করা হচ্ছে না?
যদিও, HTTPS- র মাধ্যমে পুরো সাইটটি পরিবেশন করা সম্পূর্ণ জরিমানা, এইচটিটিপিএস-এর মাধ্যমে সমস্ত কিছু বিচ্ছিন্ন করা আপনার সার্ভারে একটি অতিরিক্ত ওভারহেড রয়েছে। এনক্রিপশন সস্তা আসে না মনে রাখবেন। সামান্য ওভারহেড আপনার অ্যাপ্লিকেশন প্রতিক্রিয়া সময় উপরও প্রভাব ফেলে। আপনি তর্ক করতে পারেন যে পণ্য হার্ডওয়্যারটি সস্তা এবং প্রভাব নগণ্য তবে আমি ডিগ্রি করি :) https এ চিত্রগুলি সহ বিপণন সামগ্রীর বড় পৃষ্ঠাগুলি সরবরাহ করার ধারণাটি আমার পছন্দ হয় না। সুতরাং এখানে এটি যায়। এটি মিডলওয়্যার ব্যবহারের উপরে অন্যেরা যা বলেছে তার অনুরূপ তবে এটি একটি সম্পূর্ণ সমাধান যা আপনাকে এইচটিটিপি / এইচটিটিপিএসের মধ্যে পিছনে টগল করতে দেয়।
প্রথমে মিডলওয়্যার তৈরি করুন।
php artisan make:middleware ForceSSL
এটি আপনার মিডলওয়্যারের মতো হওয়া উচিত।
<?php
namespace App\Http\Middleware;
use Closure;
class ForceSSL
{
public function handle($request, Closure $next)
{
if (!$request->secure()) {
return redirect()->secure($request->getRequestUri());
}
return $next($request);
}
}
নোট করুন যে আমি পরিবেশের উপর ভিত্তি করে ফিল্টারিং করছি না কারণ আমার স্থানীয় দেব এবং উত্পাদন উভয়ের জন্যই এইচটিটিপিএস সেটআপ রয়েছে তাই এর দরকার নেই।
আপনার রুটমিলডওয়ার \ অ্যাপ \ এইচটিটিপি \ কার্নেল.এফপিতে নিম্নলিখিতগুলি যুক্ত করুন যাতে আপনি চয়ন করতে পারেন এবং কোন রুট গোষ্ঠীটি এসএসএলকে বাধ্য করতে হবে তা বেছে নিতে পারেন।
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'forceSSL' => \App\Http\Middleware\ForceSSL::class,
];
এরপরে, আমি দুটি প্রাথমিক গ্রুপ লগইন / সাইনআপ ইত্যাদি এবং আথ মিডওয়্যারের পিছনে থাকা সমস্ত কিছু সুরক্ষিত করতে চাই।
Route::group(array('middleware' => 'forceSSL'), function() {
/*user auth*/
Route::get('login', 'AuthController@showLogin');
Route::post('login', 'AuthController@doLogin');
// Password reset routes...
Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
Route::post('password/reset', 'Auth\PasswordController@postReset');
//other routes like signup etc
});
Route::group(['middleware' => ['auth','forceSSL']], function()
{
Route::get('dashboard', function(){
return view('app.dashboard');
});
Route::get('logout', 'AuthController@doLogout');
//other routes for your application
});
কনসোল থেকে আপনার মিডলওয়্যারগুলি সঠিকভাবে আপনার রুটে প্রয়োগ করা হয়েছে তা নিশ্চিত করুন।
php artisan route:list
এখন আপনি আপনার অ্যাপ্লিকেশনের সমস্ত ফর্ম বা সংবেদনশীল ক্ষেত্রগুলি সুরক্ষিত করেছেন, এখন কীটি আপনার সুরক্ষিত এবং সর্বজনীন (https নয়) লিঙ্কগুলি সংজ্ঞায়িত করতে আপনার ভিউ টেমপ্লেটটি ব্যবহার করবে।
উপরের উদাহরণের ভিত্তিতে আপনি নীচে আপনার সুরক্ষিত লিঙ্কগুলি রেন্ডার করবেন -
<a href="{{secure_url('/login')}}">Login</a>
<a href="{{secure_url('/signup')}}">SignUp</a>
নিরাপদ লিঙ্কগুলি হিসাবে রেন্ডার করা যায়
<a href="{{url('/aboutus',[],false)}}">About US</a></li>
<a href="{{url('/promotion',[],false)}}">Get the deal now!</a></li>
এটি যা করে তা পুরোপুরি যোগ্য ইউআরএল যেমন https: // আপনার হোস্ট / লগইন এবং http: // আপনার হোস্ট / অ্যান্টাস রেন্ডার করে
যদি আপনি HTTP- র সাথে সম্পূর্ণরূপে যোগ্যতাসম্পন্ন URL রেন্ডার না করে থাকেন এবং আপেক্ষিক লিঙ্ক url ('/ aboutus') ব্যবহার করেন তবে কোনও ব্যবহারকারী কোনও সুরক্ষিত সাইট দেখার পরে https অবিরত থাকবে।
আশাকরি এটা সাহায্য করবে!