我使用過去4-5個月的django,最近開始學習django-rest-framework,我對正確的認證系統感到困惑, 其實我試圖建立一個大多使用REST API的應用程序,因爲我的 客戶端可以同時瀏覽器和Android, 所以我需要一個身份驗證系統,用戶可以在其中使用內置身份驗證(django.contrib.auth.model.User)以及第三方社交身份驗證(Google,Facebook,等等..)。如何在我的應用程序中實現內置的django認證和第三方社交認證?
現在,我很困惑我該如何創建我的數據庫,因爲當我創建 表/模型可以說一個'書',那麼這個模型需要一個外鍵給用戶模型和這裏用戶可以是'django.contrib.auth.model.User'和用戶使用第三方認證註冊,
那麼我如何引用用戶在外鍵我的模型領域?
我也決定自定義django的內置身份驗證,因爲我想用 用戶使用他們的電子郵件而不是用戶名登錄。
class Book(models.Model):
title = models.CharField(...)
author = models.ForeignKey(?) ? Here, how do i refer to both
'django.contrib...User' and users signed-up
using thrid-party auth.
感謝丹尼斯,但我感到困惑的是什麼,我會在用戶配置的「用戶」字段存儲(根據您的答案),當用戶註冊他們的社會身份驗證的自我。 – Deepak
您將從django.contrib.auth.models存儲對auth用戶模型的引用!把它看作是一個問題的分離。所有auth部分都由djangos用戶完成,用戶配置文件不會處理額外的信息! Django的所有身份驗證都將處理您的所有社交登錄/常規登錄,並將其鏈接到身份驗證模型。包括令牌處理:) –
好吧,all-auth甚至可以處理我的正常身份驗證,我不知道這一點,這就是爲什麼我很困惑......我想我必須處理我自己的身份驗證與第三方身份驗證分開系統。 – Deepak