• صفحه اصلی
  • درباره من
  • مهارت‌های ایجنت
  • پروژه‌ها
  • بلاگ
  • مشاوره
  • تماس با من
مشاورهرزومه
مهارت‌های ایجنت‌های برنامه‌نویسی/امنیت/پیاده‌سازی امن Refresh Token در فرانت‌اند

پیاده‌سازی امن Refresh Token در فرانت‌اند

چرخه تمدید Access Token را با Cookie از نوع HttpOnly، صف Retry، Rotation، پشتیبانی SSR و Logout امن در برنامه مرورگری طراحی و بازبینی کن.

AuthenticationRefresh TokenAxiosCookieToken Rotation

راهنمای نصب Skill

فایل SKILL.md را دانلود کنید و در مسیر مخصوص ایجنت موردنظرتان قرار دهید. پیشنهاد می‌کنیم پیش از فعال‌سازی، محتوای کامل فایل و سطح دسترسی آن را بررسی کنید.

Codex

~/.codex/skills/refresh-token-in-frontend/SKILL.md

Claude Code

.claude/skills/refresh-token-in-frontend/SKILL.md

Cursor

.cursor/skills/refresh-token-in-frontend/SKILL.md

GitHub Copilot

.github/skills/refresh-token-in-frontend/SKILL.md
</>مشاهده محتوای خام SKILL.mdفقط دستورالعمل‌هایی را ببینید که ایجنت برنامه‌نویسی دریافت می‌کند؛ بدون عنوان، تگ و متادیتای کاتالوگ.
فایل منبع: refresh-token-in-frontend/SKILL.md
---
name: "refresh-token-in-frontend"
description: "چرخه تمدید Access Token را با Cookie از نوع HttpOnly، صف Retry، Rotation، پشتیبانی SSR و Logout امن در برنامه مرورگری طراحی و بازبینی کن."
---

# پیاده‌سازی امن Refresh Token در فرانت‌اند

این Skill را برای طراحی، پیاده‌سازی یا بازبینی چرخه تمدید Access Token کوتاه‌عمر در برنامه مرورگری به کار ببر.

## مدل امنیتی لازم

- Refresh Token را در Cookie با `Secure`، `HttpOnly` و Scope محدود نگه دار.
- Access Token را کوتاه‌عمر و در صورت امکان در حافظه برنامه نگه دار.
- در Production از HTTPS استفاده کن.
- Rotation و تشخیص استفاده مجدد Refresh Token را در Backend اجرا کن.
- Authorization را مسئولیت Server بدان؛ Guard فرانت‌اند فقط UX را بهبود می‌دهد.

## ابتدا قرارداد را مشخص کن

Endpointهای Login، Refresh، Logout و Session، ویژگی Cookie، دفاع CSRF، شکل پاسخ Access Token، رفتار Expiration و مدل CSR یا SSR را بررسی کن. کمبود تضمین Server را با راه‌حل ساختگی Client پنهان نکن.

## روند Client

1. در صورت وجود Access Token، آن را همراه Request محافظت‌شده بفرست.
2. در خطای Authentication واجد شرایط، حداکثر یک Request تمدید فعال بساز.
3. Requestهای شکست‌خورده هم‌زمان را پشت همان عملیات صف کن.
4. پس از موفقیت، Token حافظه را به‌روز و هر Request اصلی را فقط یک بار Retry کن.
5. Request تکرارشده را علامت بزن تا Loop ساخته نشود.
6. در شکست Refresh، Session محلی را پاک، Requestهای صف را Reject و کاربر را وارد روند خروج کن.
7. در Logout، Endpoint ابطال Session و پاک‌کردن Cookie را صدا بزن و سپس State سمت Client را پاک کن.

## حالت‌های حساس

- خود Request تمدید را دوباره وارد Interceptor تمدید نکن.
- `401` انقضای Authentication را از `403` نبود Permission جدا کن و به قرارداد API تکیه کن.
- Logout حین Refresh و کارهای قدیمی را مدیریت کن.
- Request غیر Idempotent را بدون تضمین قابلیت بازپخش Retry نکن.
- در SSR، Credential را از مرز Server خارج و داخل Props یا Log سریال‌شده افشا نکن.

Request عادی، یک Token منقضی، چند خطای هم‌زمان، شکست Refresh، Rotation، Logout حین Refresh، جلوگیری از Loop، Reload و رفتار SSR را تست کن. تضمین‌های Backend و بخش‌های تأییدشده Frontend را جدا گزارش کن.

این Skill را برای طراحی، پیاده‌سازی یا بازبینی چرخه تمدید Access Token کوتاه‌عمر در برنامه مرورگری به کار ببر.

مدل امنیتی لازم

  • Refresh Token را در Cookie با Secure، HttpOnly و Scope محدود نگه دار.
  • Access Token را کوتاه‌عمر و در صورت امکان در حافظه برنامه نگه دار.
  • در Production از HTTPS استفاده کن.
  • Rotation و تشخیص استفاده مجدد Refresh Token را در Backend اجرا کن.
  • Authorization را مسئولیت Server بدان؛ Guard فرانت‌اند فقط UX را بهبود می‌دهد.

ابتدا قرارداد را مشخص کن

Endpointهای Login، Refresh، Logout و Session، ویژگی Cookie، دفاع CSRF، شکل پاسخ Access Token، رفتار Expiration و مدل CSR یا SSR را بررسی کن. کمبود تضمین Server را با راه‌حل ساختگی Client پنهان نکن.

روند Client

  1. در صورت وجود Access Token، آن را همراه Request محافظت‌شده بفرست.
  2. در خطای Authentication واجد شرایط، حداکثر یک Request تمدید فعال بساز.
  3. Requestهای شکست‌خورده هم‌زمان را پشت همان عملیات صف کن.
  4. پس از موفقیت، Token حافظه را به‌روز و هر Request اصلی را فقط یک بار Retry کن.
  5. Request تکرارشده را علامت بزن تا Loop ساخته نشود.
  6. در شکست Refresh، Session محلی را پاک، Requestهای صف را Reject و کاربر را وارد روند خروج کن.
  7. در Logout، Endpoint ابطال Session و پاک‌کردن Cookie را صدا بزن و سپس State سمت Client را پاک کن.

حالت‌های حساس

  • خود Request تمدید را دوباره وارد Interceptor تمدید نکن.
  • 401 انقضای Authentication را از 403 نبود Permission جدا کن و به قرارداد API تکیه کن.
  • Logout حین Refresh و کارهای قدیمی را مدیریت کن.
  • Request غیر Idempotent را بدون تضمین قابلیت بازپخش Retry نکن.
  • در SSR، Credential را از مرز Server خارج و داخل Props یا Log سریال‌شده افشا نکن.

Request عادی، یک Token منقضی، چند خطای هم‌زمان، شکست Refresh، Rotation، Logout حین Refresh، جلوگیری از Loop، Reload و رفتار SSR را تست کن. تضمین‌های Backend و بخش‌های تأییدشده Frontend را جدا گزارش کن.

مشخصات Skill

نسخه
1.0.0
آخرین تغییر
2026-08-08
دسته‌بندی
امنیت
سطح پیچیدگی
پیشرفته
مجوز
MIT
نویسنده
Naser Rasouli

سطح دسترسی و اجرا

امکان اجرای اسکریپتندارد
دسترسی شبکهندارد

مقاله منبع

برای توضیح عمیق‌تر مفاهیم، زمینه و مثال‌ها، مقاله‌ای را بخوانید که این Skill از آن ساخته شده است.