سه نقش را از هم جدا کنید

برنامه مرورگر جریان ورود را شروع می‌کند، سرویس هویت کاربر را احراز می‌کند و API توکن دسترسی را اعتبارسنجی می‌کند. ورود موفق لزوماً به معنی پذیرفته شدن توکن در API نیست.

صادرکننده مورد انتظار، شناسه کلاینت، نشانی بازگشت، نوع پاسخ و scopeها را مشخص کنید. نشانی بازگشت را دقیق بررسی کنید؛ شباهت دو URL به معنی یکسان بودن آن‌ها نیست.

تبادل کد را دنبال کنید

در PKCE، کلاینت یک verifier می‌سازد و challenge مشتق‌شده از آن را در درخواست مجوز می‌فرستد. درخواست توکن باید همان verifier متناظر را داشته باشد. از دست رفتن آن هنگام بازگشت مرورگر یا استفاده دوباره از کد، تبادل را ناموفق می‌کند.

توکن و verifier را در لاگ ننویسید. ساختار درخواست، زمان تغییر فضای ذخیره‌سازی و پاسخ خطای پاک‌سازی‌شده سرویس هویت را بررسی کنید.

سپس سراغ مجوز API بروید

توکن دسترسی باید برای API مقصد و از مرجع مورد اعتماد صادر شده باشد. پیش از بررسی مجوزهای برنامه، صادرکننده، مخاطب، امضا و زمان اعتبار را بررسی کنید. ID token جایگزین access token برای API نیست.

پس از احراز هویت موفق، scope یا سیاست مجوز همچنان ممکن است عملیات را رد کند. جدا نگه داشتن این مراحل، بررسی خطاهای 401 و 403 را ساده‌تر می‌کند.

منبع برای مطالعه بیشتر

مستندات و استاندارد مرجع