Django はログイン インターフェイスをすばやく実装します

リソース アドレス:

https://download.csdn.net/download/qq_39208536/87642079

1.Django プロジェクトを作成する

https://blog.csdn.net/qq_39208536/article/details/129892480?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22 %3A%22129892480%22%2C%22ソース%22%3A%22qq_39208536%22%7D

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 クロスドメインの問題エラー:

https://blog.csdn.net/qq_39208536/article/details/129906624?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22 %3A%22129906624%22%2C%22ソース%22%3A%22qq_39208536%22%7D

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 のデフォルト設定のクロスドメイン リクエスト フォージェリ保護を無効にする

おすすめ

転載: blog.csdn.net/qq_39208536/article/details/129892740