অনেক ডেভেলপার ওয়েবসাইটে GitHub সোশ্যাল অথেনটিকেশন দেখতে পাই যা খুব হ্যান্ডি। এই আর্টিকেলে, আমরা দেখব কিভাবে আমাদের ডজ্যাঙ্গো ওয়েবসাইটে GitHub Auth যোগ করতে হয়।
https://github.com/settings/developers/ এ যান এবং একটি Oauth অ্যাপ্লিকেশন তৈরি করুন এবং এই দুটি URL যোগ করুন:
https://127.0.0.1:8000/
https://127.0.0.1:8000/accounts/github/login/callback
তাহলে, আপনি একটি Client ID এবং একটি সিক্রেট কি পাবেন। এখন, চলুন কোডিং অংশে যাই।
উদাহরণ
django-allauth লাইব্রেরি ইনস্টল করুন:
pip install django-allauth
settings.py-তে নিচের কোড লাইনগুলো যোগ করুন:
INSTALLED_APPS = [
##################
# # # #
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.github',
'githubAuthentication'
]
SITE_ID = 1
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend'
]
LOGIN_REDIRECT_URL = "https://github.com"
INSTALLED APPS-এ, আমরা আমাদের প্রয়োজনীয় ইম্পোর্ট লাইব্রেরিগুলো যোগ করেছি এবং তারপর GitHub ডিফল্ট অথেনটিকেশন ব্যাকএন্ড যোগ করেছি। আমরা একটি রিডাইরেক্ট URLও সক্ষম করেছি যা বলবে লগইন হলে কোথায় রিডাইরেক্ট করতে হবে।
urls.py প্রজেক্ট রুটে:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# this is module path copy this as it is
path('accounts/', include('allauth.urls')),
# this is my app path
path('', include("githubAuthentication.urls"))
]
এখানে, আমরা যে ডিফল্ট পাথটি যোগ করতে হবে সেটি যোগ করেছি; এটি allauth লাইব্রেরির পাথ GitHub লগইন সক্ষম করার জন্য। দ্বিতীয়টি হলো অ্যাপ পাথ যা আমরা তৈরি করেছি।
এখন https://localhost:8000/admin-এ যান এবং social application-এ যান।
এবং, একটি অ্যাপ্লিকেশন যোগ করুন:

আপনার আগে কপি করা Client ID এবং Secret Key পেস্ট করুন এবং নাম হবে অ্যাপ্লিকেশন নাম, প্রোভাইডার সিলেক্ট করুন github।
Sites সেকশনে, example.com-এ ক্লিক করুন এবং তারপর অ্যারো কি ক্লিক করুন এবং save চাপুন। এটি github-কে আপনার ডজ্যাঙ্গো প্রজেক্টে একটি অথেনটিকেশন ব্যাকএন্ড হিসেবে রেজিস্টার করবে।
এখন, templates ফোল্ডারে home.html তৈরি করুন এবং নিচের লাইনগুলো যোগ করুন:
<!DOCTYPE html>
<html>
<head>
<title>tut</title>
</head>
<body>
{% load socialaccount %}
{% providers_media_js %}
<a href="{% provider_login_url 'github' method='js_sdk' %}?next=https://github.com">login with github</a>
</body>
</html>
এখানে, আমরা সিম্পলি JS রেন্ডার করেছি এবং ফ্রন্টএন্ডে allauth লাইব্রেরি লোড করেছি। <a>-এ আমরা github লগইন পেজ প্রদান করেছি जिसপরে আমরা আমাদের ডিফল্ট github লগইন পেজ সেট আপ করেছি।
view.py-তে:
from django.shortcuts import render
def home(request):
return render(request, "home.html")
আমরা এখানে আমাদের ফ্রন্টএন্ড রেন্ডার করেছি।
urls.py (অ্যাপ urls) -তে:
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.home, name="Home"),
]
আমরা এখানে urls সেট আপ করেছি এবং আমাদের ভিউস রেন্ডার করেছি।
সব কিছু হয়ে গেছে, এখন আপনি আউটপুট চেক করতে পারেন।
আউটপুট
