OAuth 2.0 এবং Third-party Authentication আজকাল অনেক ওয়েব অ্যাপ্লিকেশনে সাধারণ প্র্যাকটিস হয়ে উঠেছে, বিশেষত সুরক্ষিত অথেন্টিকেশন এবং অ্যাক্সেসের জন্য। CodeIgniter এ OAuth 2.0 এবং Third-party Authentication সেটআপ করা বেশ সহজ এবং এটি তৃতীয় পক্ষের সার্ভিস যেমন Google, Facebook, Twitter ইত্যাদি থেকে লগইন অথবা অ্যাক্সেস প্রদান করতে সাহায্য করে।
OAuth 2.0 হল একটি প্রটোকল যা তৃতীয় পক্ষের অ্যাপ্লিকেশনকে ব্যবহারকারীর অ্যাকাউন্টে অ্যাক্সেস প্রদান করার অনুমতি দেয়, ব্যবহারকারীর পাসওয়ার্ড জানার প্রয়োজন ছাড়াই। এটি একাধিক অ্যাপ্লিকেশন বা সার্ভিসের মধ্যে নিরাপদ ডেটা শেয়ার করার জন্য ব্যবহৃত হয়।
OAuth 2.0-এ সাধারণত তিনটি পদ্ধতি ব্যবহৃত হয়:
Third-party Authentication হলো এমন একটি পদ্ধতি যেখানে ব্যবহারকারীরা তৃতীয় পক্ষের প্রোভাইডারের মাধ্যমে লগইন করেন, যেমন Google, Facebook, Twitter, ইত্যাদি। এটি সাধারণত OAuth 2.0 প্রটোকল ব্যবহার করে, যেখানে তৃতীয় পক্ষের সিস্টেম ব্যবহারকারীর অ্যাকাউন্টের অ্যাক্সেস দেয়।
OAuth 2.0 ব্যবহার করতে CodeIgniter এ সাধারণত একটি লাইব্রেরি ব্যবহার করা হয়, যেমন CodeIgniter-OAuth2
অথবা HybridAuth
লাইব্রেরি। এই লাইব্রেরিগুলি আপনাকে OAuth 2.0 প্রটোকল ব্যবহার করে তৃতীয় পক্ষের অ্যাপ্লিকেশন থেকে অথেন্টিকেশন পরিচালনা করতে সহায়তা করে।
HybridAuth
লাইব্রেরি ব্যবহারHybridAuth হলো একটি ওপেন সোর্স PHP লাইব্রেরি যা তৃতীয় পক্ষের সামাজিক সাইট থেকে অথেন্টিকেশন প্রদান করতে সহায়ক। এটি Google, Facebook, Twitter, LinkedIn, GitHub সহ অন্যান্য প্ল্যাটফর্মের সাথে ইন্টিগ্রেশন সমর্থন করে।
application/libraries
ডিরেক্টরিতে রাখুন।application/config/hybridauthlib.php
কনফিগারেশন ফাইল তৈরি করুন এবং আপনার প্রয়োজনীয় API কীগুলি সংরক্ষণ করুন।<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config = array(
'callback' => 'http://localhost/your_project/index.php/auth/callback',
'providers' => array(
'Google' => array(
'enabled' => true,
'keys' => array('id' => 'YOUR_GOOGLE_CLIENT_ID', 'secret' => 'YOUR_GOOGLE_SECRET'),
'scope' => 'email', // Requesting user's email address
),
'Facebook' => array(
'enabled' => true,
'keys' => array('id' => 'YOUR_FACEBOOK_APP_ID', 'secret' => 'YOUR_FACEBOOK_APP_SECRET'),
'scope' => 'email',
),
// Add other providers like Twitter, LinkedIn, etc.
)
);
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Auth extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('hybridauthlib');
}
public function login() {
// Google বা Facebook এর জন্য লগইন প্রক্রিয়া শুরু
$this->hybridauthlib->authenticate('Google'); // বা 'Facebook'
}
public function callback() {
// Callback URL যেখানে তৃতীয় পক্ষের সিস্টেম থেকে রেসপন্স আসবে
$adapter = $this->hybridauthlib->adapter('Google'); // অথবা 'Facebook'
// ব্যবহারকারীর তথ্য নিয়ে আসুন
$user_profile = $adapter->getUserProfile();
// প্রাপ্ত তথ্য দেখান বা ডেটাবেসে সংরক্ষণ করুন
print_r($user_profile);
}
}
<a href="<?php echo site_url('auth/login'); ?>">Login with Google</a>
<!-- অথবা Facebook -->
<a href="<?php echo site_url('auth/login/facebook'); ?>">Login with Facebook</a>
CodeIgniter-এ যদি আপনি একটি OAuth 2.0 সার্ভিস তৈরি করতে চান, তাহলে OAuth2
লাইব্রেরি ব্যবহার করা যেতে পারে। এই লাইব্রেরি API এর মাধ্যমে অথেন্টিকেশন এবং অথরাইজেশন পরিচালনা করতে সাহায্য করে।
CodeIgniter-এ OAuth2 Server লাইব্রেরি ব্যবহার করতে OAuth2
লাইব্রেরি ইনস্টল করুন। আপনি OAuth2 PHP Library ব্যবহার করতে পারেন।
// OAuth2 Server Configuration
$storage = new OAuth2\Storage\Pdo(array('dsn' => 'mysql:dbname=oauth;host=localhost', 'username' => 'root', 'password' => 'password'));
$server = new OAuth2\Server($storage);
// Define the type of grant (authorization code, password, etc.)
$server->addGrantType(new OAuth2\GrantType\UserCredentials($storage));
public function api_login() {
$server->handleTokenRequest(OAuth2\Request::createFromGlobals())->send();
}
OAuth 2.0 এবং Third-party Authentication CodeIgniter-এ দ্রুত এবং নিরাপদে ইন্টিগ্রেট করা যায়। HybridAuth লাইব্রেরি বা OAuth2 Server লাইব্রেরি ব্যবহার করে আপনি তৃতীয় পক্ষের লগইন পরিষেবাগুলি যেমন Google, Facebook, Twitter সহজে সংযোগ করতে পারেন। OAuth 2.0 প্রটোকল ব্যবহার করে আপনাদের অ্যাপ্লিকেশন আরও নিরাপদ, স্কেলেবল এবং ব্যবহারকারী-বান্ধব হতে পারে।
Read more