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 -
Dán ID khách hàng và 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