استفاده از Refresh Token جهت دریافت توکنهای معتبر جدید (کانکت)
سلامی مجدد و با شکوه
در صورتی که اعتبار access token موجودتان از بین بره و منقضی بشه، نیاز خواهید داشت که با استفاده از refresh token درخواست توکنهای معتبر جدید بدید.
فقط توجه کنید که refresh token هم می تونه اعتبارش رو از دست بده و منقضی بشه که دیگه کاری براش نمی شه کرد و فقط می شه کاربر رو دوباره از مراحل احراز هویت گذروند.
ولی در صورتی که توکن معتبر داشته باشید می تونید درخواستتان را به این شکل به ریسورس مربوطه ارسال نمایید:
POST https://connect.evand.com/api/oauth2/token
{
"grant_type": "refresh_token",
"client_id": "client_test",
"client_secret": "test",
"refresh_token": "XXXXX......"
}
دیتاهایی که نیازه به این فیلد بفرستید به این شرح هستن:
فیلد grant_type تعیین کننده، نوع درخواست توکن هست که اینجا برای رفرش کردن توکن ها نیازه مقدار refresh_token تعیین بشه.
فیلدهای client_id و client_secret اطلاعات مربوط به کلاینت مربوطه است که جداگانه در اختیارشان قرار می گیره و نیازه مشخصات خود را در این فیلد ها بفرستن تا بدونیم درخواست از چه کلاینتی ارسال می شه.
در نهایت فیلد refresh_token هست که باید مقدارش، refresh_token ای که دارید رو تعیین کنید.
در صورت موفقیت آمیز بودن عملیات خروجی مانند زیر دریافت خواهید کرد:
{
"token_type": "Bearer",
"expires_in": 86400,
"access_token": "eyJ0e…….",
"refresh_token": "def502………."
}
فیلد token_type نوع توکن رو تعیین می کنه. مثلا اینجا Bearer هست و برای ریسورس هایی که نیاز به احراز هویت هست، نیازه در هدر Authorization مقدار "Bearer ACCESS_TOKEN" را بفرستید.
فیلد expires_in مدت زمانی هست که توکن اعتبار داره و بعد از آن توکن اعتبارش را از دست می ده.
زمان توکن بر حسب ثانیه است و زمان فعلی که برای توکن ها در نظر گرفته می شه یک روزه هستش.
فیلد access_token هم توکن مون هست که همانطوری که توضیح داده شد نیازه از هدر Authorization ارسال بشه که مقدارش هم به این شکل خواهد بود: "Bearer ACCESS_TOKEN"
فیلد refresh_token برای این هست که بعد از منقضی شدن توکن، با استفاده از refresh token ، درخواستی برای گرفتن توکن جدید ارسال بشه. البته این عمل توسط کلاینت (اپ و برنامه نویس) انجام می شه تا کاربر نیازی نباشه دوباره مراحل احراز هویت رو بگذرونه.
البته توجه کنید که refresh_token همیشگی نیست و زمان منقضی داره که زمان پیش فرضش یک ماه هست و بعد از ۱ ماه اگر از اعتبار بیفته و access_token هم از اعتبار بیفته، نیاز خواهد بود تا کاربر دوباره لاگین کنه.
نظرات