<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Authentication on Peter.H's Full-Stack GAME</title><link>https://peter-notes.com/tags/authentication/</link><description>Recent content in Authentication on Peter.H's Full-Stack GAME</description><image><title>Peter.H's Full-Stack GAME</title><url>https://peter-notes.com/images/og-image.jpg</url><link>https://peter-notes.com/images/og-image.jpg</link></image><generator>Hugo</generator><language>zh-tw</language><lastBuildDate>Tue, 21 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://peter-notes.com/tags/authentication/index.xml" rel="self" type="application/rss+xml"/><item><title>Strapi 忘記密碼的安靜回應：Anti-Enumeration、Phishing-as-a-Service 與撞庫經濟學</title><link>https://peter-notes.com/posts/strapi-forgot-password-anti-enumeration/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://peter-notes.com/posts/strapi-forgot-password-anti-enumeration/</guid><description>從一次 kubectl 排查出發，解析為何 Strapi 忘記密碼 API 對不存在的 email 仍回 200，並深入釣魚工具（Gophish、Evilginx2）與撞庫工具（OpenBullet）的運作與經濟模型，說明 App 文案為何必須配合後端的 anti-enumeration 設計。</description></item><item><title>升級 Strapi v5.31+ 後 JWT 過期就被登出？問題藏在你沒注意到的內建路由裡</title><link>https://peter-notes.com/posts/strapi-v5-auth-refresh-route-pitfall/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://peter-notes.com/posts/strapi-v5-auth-refresh-route-pitfall/</guid><description>深入剖析 Strapi v5.31+ 將 /auth/refresh 改為內建路由後，導致 JWT 過期呼叫 refresh 回傳 403 的根因與修復方式。一個版本升級隱含的行為變更，如何讓除錯方向完全走偏。</description></item><item><title>會員資料不見？這不是我沒要求，是外包商沒做完整的 OAuth 2.0</title><link>https://peter-notes.com/posts/oauth-refresh-token-outsourcing-lessons/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0000</pubDate><guid>https://peter-notes.com/posts/oauth-refresh-token-outsourcing-lessons/</guid><description>從會員反映資料消失，到發現是 Token 過期問題，再到翻出合約證明外包商沒做完整的 OAuth 2.0。一個技術問題背後，揭露的是外包驗收與合約管理的重要教訓。</description></item></channel></rss>