Django的session中對於使用者驗證的支援

來源:互聯網
上載者:User
使用者與Authentication

通過session,我們可以在多次瀏覽器請求中保持資料, 接下來的部分就是用session來處理使用者登入了。 當然,不能僅憑使用者的一面之詞,我們就相信,所以我們需要認證。

當然了,Django 也提供了工具來處理這樣的常見任務(就像其他常見任務一樣)。 Django 使用者認證系統處理使用者帳號,組,許可權以及基於cookie的使用者會話。 這個系統一般被稱為 auth/auth (認證與授權)系統。 這個系統的名稱同時也表明了使用者常見的兩步處理。 我們需要

驗證 (認證) 使用者是否是他所宣稱的使用者(一般通過查詢資料庫驗證其使用者名稱和密碼)

驗證使用者是否擁有執行某種操作的 授權 (通常會通過檢查一個許可權表來確認)

根據這些需求,Django 認證/授權 系統會包含以下的部分:

使用者 : 在網站註冊的人

許可權 : 用於標識使用者是否可以執行某種操作的二進位(yes/no)標誌

組 :一種可以將標記和許可權應用於多個使用者的常用方法

Messages : 向使用者顯示隊列式的系統訊息的常用方法

如果你已經用了admin工具(詳見第6章),就會看見這些工具的大部分。如果你在admin工具中編輯過使用者或組,那麼實際上你已經編輯過授權系統的資料庫表了。
開啟認證支援

像session工具一樣,認證支援也是一個Django應用,放在 django.contrib 中,所以也需要安裝。 與session系統相似,它也是預設安裝的,但如果它已經被刪除了,通過以下步驟也能重新安裝上:

根據本章早前的部分確認已經安裝了session 架構。 需要確認使用者使用cookie,這樣sesson 架構才能正常使用。

將 'django.contrib.auth' 放在你的 INSTALLED_APPS 設定中,然後運行 manage.py syncdb以建立對應的資料庫表。

確認 SessionMiddleware 後面的 MIDDLEWARE_CLASSES 設定中包含 'django.contrib.auth.middleware.AuthenticationMiddleware' SessionMiddleware。

這樣安裝後,我們就可以在視圖(view)的函數中處理user了。 在視圖中存取users,主要用 request.user ;這個對象表示當前已登入的使用者。 如果使用者還沒登入,這就是一個AnonymousUser對象(細節見下)。

你可以很容易地通過 is_authenticated() 方法來判斷一個使用者是否已經登入了:

if request.user.is_authenticated():  # Do something for authenticated users.else:  # Do something for anonymous users.
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.