কম্পিউটার টিউটোরিয়াল

ডজ্যাঙ্গোতে GitHub OAuth সক্ষম করা

অনেক ডেভেলপার ওয়েবসাইটে 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-এ যান।

এবং, একটি অ্যাপ্লিকেশন যোগ করুন:

ডজ্যাঙ্গোতে GitHub OAuth সক্ষম করা

আপনার আগে কপি করা 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 সেট আপ করেছি এবং আমাদের ভিউস রেন্ডার করেছি।

সব কিছু হয়ে গেছে, এখন আপনি আউটপুট চেক করতে পারেন।

আউটপুট


ডজ্যাঙ্গোতে GitHub OAuth সক্ষম করা

  1. ডজ্যাঙ্গো মডেল অবজেক্ট হিট কাউন্টিং

  2. ডজ্যাঙ্গো: অ্যাডমিন-ভিত্তিক ফাইল ম্যানেজমেন্ট

  3. ডжанগো মডেল ইনস্ট্যান্সে অনুবাদ যোগ করা

  4. ডжанগোতে মানি (Money) ফিল্ড যোগ করা