---
# System prepended metadata

title: 實現jwt認證機制時發生的蠢事情

---

#    實現jwt認證機制時發生的蠢事情

## * **想要的結果** **:**  
 * **當我在寫登入認證機制，加入spring security6的auth機制，沒有帳號要先註冊有了帳號就可以登入，目前的設計為註冊和登入成功都會產生token後端存到redis，並設置緩存時間，最後讓每個打api的都要戴上bearer token，security才可以授予你權利通過否則就是403，把寫好得程式碼進行測試~~~~**
 
 
 
 
 #    **(註冊和登入api在auth下因此可不帶token)**
 ![](https://i.imgur.com/wwrf68F.png)


    1.hello是用來測試的api(我們打開postman測試)，結果如預期403
  
 ![](https://i.imgur.com/VTBUQFi.png)
 
    2.進行註冊(password1和2分別為輸入兩次密碼)
 
![](https://i.imgur.com/yHEoQCf.png)

  
    3.利用創立好的email和password登入(200成功複製token)

![](https://i.imgur.com/Uwrhiib.png)

    4.貼上token一樣為403(回去看intellij)
![](https://i.imgur.com/mUtzSL5.png)


![](https://i.imgur.com/MeyvyiK.png)

![](https://i.imgur.com/htF5Tyu.png)

(要用parseClaimJws而不是圖片中的parseClaimJwt)

![](https://i.imgur.com/m78tKhN.png)

    5.改好以後再重新run
![](https://i.imgur.com/DVmd8IQ.png)

    6.戴上剛剛登入生成的token(成功debug)
![](https://i.imgur.com/MZ1tZS2.png)
## * **總結** **:**  

**大致上我遇到bug的原因和要檢討的內容:**

* 沒有把redis打開(造成無法存入報錯)
* 用了錯的函式(解析jwt沒使用jws 加上簽名的function)
* 要記得設置origin 讓server判斷哪些request可不帶token
* spring security 的architeture可以再多深入了解!!!
* 感謝各位觀看 ，如有錯誤地方，麻煩指正我!!**