iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
自我挑戰組

轉職新手學 Django 及 DRF系列 第 21

Day 21 - 中場暫停(一) API 的驗證方法

  • 分享至 

  • xImage
  •  

在實作之前,先來介紹一下驗證

Authentication vs Authorization

在介紹前先與另一個相似字 Authorization(授權) 做一點比較,簡單來說,授權像是人進入一個地方的允許權。做個比喻:持有登機證,便可以出境並進入一般旅客可以到的地方;而認證像是在人進入特殊地方的權利,如持有登機證跟信用卡 VIP,除了一般旅客可以到的地方,還可以進入 VIP 休息室。OK,接下來介紹驗證的方式。

Authentication

介紹幾種常見的驗證方式:

  1. Basic Authectication:

最直接也最簡單的,就是在每次請求時都使用帳號及密碼來進行驗證,但因帳號密碼沒有經過加密,所以可能會被竊取,安全性較低,通常在低風險的情況才使用。

  1. Token Authentication:

使用帳號密碼取得 token,token 為一組由數字跟英文字母組成的亂數組合,後續的請求 token 都會包含在 HTTP header 中,安全性較高,
但實作上較為複雜。

  1. JSON Web Token(JWT) Authentication:

使用帳號密碼取得 access token 跟 refresh token,安全性較高。token 本身分為三個部分:Header, Payload, Verify signature,各自有不同功能,但 JWT 的體積較大,使用者多的時候可能會影響效能。

更多資訊

  1. Session:

使用 cookie,為一般網站常見的驗證形式,實作簡單,可保持使用者狀態,但因 session 儲存在伺服器端,可能對伺服器造成資源消耗及效能減低。

結語

本次使用的方法為 token authentication,接下來就一起來實作吧。


上一篇
Day 20 - 製作 API (二) User 相關端點
下一篇
Day 22 - 製作 API (三) 驗證功能
系列文
轉職新手學 Django 及 DRF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言