Computer >> Máy Tính >  >> Lập trình >> Python

Bật GitHub OAuth trong Django

Trong nhiều trang web của nhà phát triển, chúng tôi nhận thấy xác thực xã hội GitHub rất tiện dụng. Trong bài viết này, chúng ta sẽ xem cách thêm Github Auth vào trang web Django của chúng tôi.

Truy cập https://github.com/settings/developers/ và tạo ứng dụng Oauth và thêm hai URL này

  • https://127.0.0.1:8000/

  • https://127.0.0.1:8000/accounts/github/login/callback

Sau đó, bạn sẽ nhận được ID khách hàng và khóa bí mật. Bây giờ, hãy chuyển sang phần viết mã.

Ví dụ

Cài đặt django-allauth thư viện -

pip install django-allauth

Trong settings.py thêm các dòng mã sau -

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"

n CÁC ỨNG DỤNG ĐÃ CÀI ĐẶT, chúng tôi đã thêm các thư viện nhập mà chúng tôi cần và sau đó chúng tôi thêm phần phụ trợ xác thực mặc định của GitHub. Chúng tôi cũng đã bật một URL chuyển hướng sẽ cho biết nơi chuyển hướng khi đăng nhập.

Trong urls.py của gốc dự án -

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"))
]

Ở đây, chúng tôi đã thêm đường dẫn mặc định cần thêm vào; nó là đường dẫn thư viện allauth để kích hoạt đăng nhập GitHub. Thứ hai là đường dẫn ứng dụng mà chúng tôi đã tạo.

Bây giờ, hãy truy cập https:// localhost:8000 / admin và chuyển đến ứng dụng xã hội.

Và, thêm một ứng dụng -

Bật GitHub OAuth trong Django

Dán ID khách hàng khóa bí mật mà bạn đã sao chép trước đó và tên phải là tên ứng dụng, hãy chọn nhà cung cấp github.

Trong trang web , nhấp vào example.com và sau đó nhấp vào phím mũi tên và nhấn lưu. Điều này sẽ đăng ký github trên dự án Django của bạn như một chương trình phụ trợ xác thực.

Bây giờ, hãy tạo home.html trong mẫu thư mục và thêm các dòng sau -

<!DOCTYPE html>
<html>
   <head>
      <title>tut</title>
    </head>
    <body>
      {% load socialaccount %}
      {% providers_media_js %}
<a href="{% provider_login_url 'github' method='js_sdk' %}?n
ext=https://github.com">login with github</a>
   </body>
</html>

Ở đây, chúng tôi chỉ hiển thị JS và tải allauth thư viện trên giao diện người dùng. Trong chúng tôi đã cung cấp trang đăng nhập github mà trên đó chúng tôi thiết lập trang đăng nhập github mặc định của mình.

Trong view.py -

from django.shortcuts import render

# Create your views here.
def home(request):
   return render(request,"home.html")

Chúng tôi đã hiển thị giao diện người dùng của mình ở đây

Trong urls.py (url ứng dụng) -

from django.urls import path,include
from . import views
urlpatterns = [
   path('',views.home, name="Home" ),

]

Chúng tôi thiết lập các url ở đây và hiển thị các chế độ xem của chúng tôi.

Mọi thứ đã xong, bây giờ bạn có thể tiến hành kiểm tra kết quả đầu ra.

Đầu ra


Bật GitHub OAuth trong Django