Web Authentication 入門:Client to Server 與 Server to Server 驗證解析
在開始之前,先記住一個大原則: 跟人打交道 = 麻煩事很多 跟機器打交道 = 相對單純 這也是為什麼權限驗證會分成兩種:Client to Server(跟人)和 Server to S
用白話講解驗證機制,Token、JWT、OAuth 一次搞懂
共 15 篇文章
在開始之前,先記住一個大原則: 跟人打交道 = 麻煩事很多 跟機器打交道 = 相對單純 這也是為什麼權限驗證會分成兩種:Client to Server(跟人)和 Server to S
兩個英文長得很像,但意思完全不同! Authentication(驗證) Authorization(授權) 很多新手會搞混,連 HTTP 狀態碼 401 和 403 也常常搞不清楚什麼時候該用哪個。這篇一次講清
在做權限驗證的時候,有一個觀念你一定要先搞懂——雜湊(Hash)。 為什麼這麼重要?因為不管你之後要做密碼驗證、Token 驗證、OTP 還是 JWT,通通都會碰到它。 如果你搞不清楚雜湊是什麼、能幹嘛、不能幹嘛,後面在實作的時候很容易搞混,然後就會踩到一堆坑。 這篇文章會用最白話的方式,讓你徹底搞...
上一篇我們聊了雜湊(Hash),知道它是「單向」的,資料進去就回不來了。 這篇要來聊的是編碼(Encode),它跟雜湊最大的不同就是:編碼是雙向的,可以過去,也可以回來。 在做權限驗證的時候,編碼也是一個很常出現的觀念。如果你搞不清楚編碼跟雜湊的差別,後面在看 Token、JWT 這些東西的時候,很...
前面我們聊了雜湊(Hash)和編碼(Encode),現在要來講最後一個:加密(Encrypt)。 加密應該是這三個裡面最好理解的,因為它就像我們日常生活中幫東西「上鎖」一樣。 但很多人會把加密和編碼搞混,覺得它們都是「可以轉過去、也可以轉回來」的東西。 沒錯,它們都是雙向的,但最大的差別在於:加密需...
前面我們學了雜湊、編碼、加密這三個觀念,知道它們的特性不同: 雜湊:單向,回不去 編碼:雙向,不需要鑰匙 加密:雙向,需要鑰匙 但知道歸知道,實際上什麼時候該用哪一個? 這篇文章用一個最常見的情境——密碼儲存,來讓你理解這三個觀念到底該怎麼選
回憶一下你人生中第一次使用 Facebook 的情形。 那時候你還不是 Facebook 使用者,於是需要註冊一個帳戶。 註冊需要填 Email 和密碼,還要設定你的名字。註冊成功後,你就有了專屬的個人檔案頁面。 接著,我們就可以靠帳號密碼來開啟 Facebook 之旅了。一切看似順理成章,但你有沒...
嘿!如果你正在用 AI 工具寫程式,或是玩一些自動化工具(像 Make、Zapier、n8n),一定碰過這種情況: 「請輸入你的 API Key」 蛤?那是什麼?我要去哪裡拿? 或是 AI 幫你生出一段程式碼,裡面寫著 X-API-Key: your_key_here,然後你就卡住了。 別擔心,這篇...
在前面的單元,我們學過 API Key 這種驗證方式。 API Key 很單純,就是一把金鑰,有鑰匙就能進門。 但 API Key 比較適合 Server to Server 的情境,也就是後端伺服器之間的溝通。 那如果我們想做 Client to Server 呢?例如讓使用者從瀏覽器直接驗證身份...
透過 Cookie,網站可以請瀏覽器存一些資訊,例如: theme=dark language=zh-TWtheme=dark language=zh-TW 這樣下次你來的時候,瀏覽器會自動把這些資料帶給網站,網站就知道你喜歡深色模式、偏好繁體中文。 這用來記「偏好設定」沒什麼問題。 但如果是記「你...
在上一篇文章中,我們討論了一個問題:為什麼不該把使用者資料直接存在 Cookie 裡? 答案是:不安全。Cookie 是存在使用者電腦上的,使用者可以看到內容,也可以修改。 如果你把 user_id=123 存在 Cookie,使用者可以直接改成 user_id=456,假裝是別人。 所以我們介紹了...
在上一篇文章中,我們介紹了 JWT 的運作原理:為什麼需要 JWT、簽名機制如何防止偽造、以及完整的登入流程。 這篇文章,我們要深入探討 JWT 的內部結構。 回顧:JWT 的三個部分 JWT 是一個用「.」分隔的字串,由三個部分組成: eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp...
在前兩篇文章中,我們介紹了 JWT 的運作原理和組成結構。 你可能會好奇:JWT 的這些規則是誰定義的?Header 要放什麼、Signature 要怎麼算,這些標準從哪裡來? 答案是:JOSE。
你有沒有想過,當你登入一個網站後,為什麼不用每點一個頁面就重新輸入帳號密碼?網站到底是怎麼「記住」你是誰的? 這篇文章會用最白話的方式,帶你搞懂兩種最常見的身份驗證方式:JWT 和 Session Cookie。更重要的是,我們會聊聊業界現在怎麼把這兩種方法「混搭」起來,做出既安全又好用的登入系統。...
你有沒有發現,現在很多網站都有「用 Google 登入」或「用 Facebook 登入」的按鈕?點下去就能直接登入,不用再記一組新的帳號密碼,超方便對吧? 這個背後的機制就叫做 OAuth 2.0。 不管你以後想串 Google、Facebook、GitHub 還是其他服務,流程其實都差不多。搞懂這...