リソース アドレス:
https://download.csdn.net/download/qq_39208536/87642079
1.Django プロジェクトを作成する
2.ログインインターフェースを書く
2.1 ルーティング urls.py を書く
from django.contrib import admin
from django.urls import path
from sign import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login),
]
2.2 ログイン方法
ビュー.py
# 导入相关的包
from django.core.cache import cache
from django.http import JsonResponse
TIME_OUT = 30 * 60 # 30min
def login(request):
username = request.POST.get("username")
password = request.POST.get("pwd")
token = "1234567890"
# 存储到缓存中(这个暂时没用,可以注释掉)
cache.set(username, token, TIME_OUT)
# 响应结果
obj = JsonResponse({'code': 200, 'msg': '操作成功', 'token':token})
# 将token写到浏览器cookie里
# obj.set_cookie('token',token)
return obj
ログイン成功メッセージを返し、トークンをブラウザー Cookie に書き込みます。
注: トークン情報は、Cookie またはセッションに入れることができます。
トークン情報を Cookie またはセッションに入れる操作は、バックエンドではなく、フロントエンドで行う必要があります。
3. クロスドメインの問題処理
クロスドメインの問題に対処する必要があります。
Django クロスドメインの問題エラー:
Django クロスドメインの問題処理方法:
Django Notes - Django Cross-Domain Requests の解決_Django が Cross-Domain_simpleyako のブログを閉じる - CSDN ブログ
フロントエンドとバックエンドの分離モードでは、フロントエンドとバックエンドは異なるポートであり、ブラウザの同一生成元ポリシーが相互接続をサポートしていないため、データへのクロスドメイン アクセスの問題が発生します。デフォルトで 2 つの異なるドメイン名間のデータへのアクセス 2 つのドメイン名間でデータを転送する必要がある場合、バックエンドへのクロスドメイン アクセスのサポートを追加する必要があります。
1. django-cors-headers 拡張機能を使用して、クロスドメイン アクセスのバックエンド サポートを解決します。
pip install django-cors-headers -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
2. 中間層の設定:
設定.py
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
]
3.ホワイトリストを追加
CORS_ORIGIN_WHITELIST = (
'http://127.0.0.1:8080',
'http://localhost:8080',
'https://localhost:8080',
)
CORS_ALLOW_CREDENTIALS = True # 允许携带cookie
4. Django のデフォルト設定のクロスドメイン リクエスト フォージェリ保護を無効にする