دریافت یا تمدید Access Token
https://api.parsget.com/oauth/tokenبرای دریافت توکن، grant_type را بر اساس روش ورود تعیین کنید. در Authorization Code، مقدار authorization_code را همراه با code و code_verifier بفرستید. در Device Flow، مقدار urn:ietf:params:oauth:grant-type:device_code را همراه با device_code بفرستید. برای تمدید توکن، از grant_type=refresh_token و Refresh Token فعلی استفاده کنید.
در پاسخ موفق، access_token را برای درخواستهای API نگه دارید و مدت اعتبار آن را از expires_in، بر حسب ثانیه، بخوانید. پس از تمدید، Refresh Token قبلی باطل میشود؛ مقدار refresh_token پاسخ جدید را جایگزین کنید. Public client به client_secret نیاز ندارد. Confidential client باید آن را فقط از backend خود بفرستد.
در Device Flow، بین درخواستها حداقل به اندازه interval ثانیه صبر کنید. authorization_pending یعنی کاربر هنوز دسترسی را تأیید نکرده است؛ درخواست را با همان فاصله تکرار کنید. با slow_down پنج ثانیه به فاصله درخواستهای بعدی اضافه کنید. با access_denied یا expired_token پیگیری را متوقف کنید. هر Device Code فقط یک بار توکن میدهد.
Request body
| Field | Type | Description |
|---|---|---|
grant_type | stringrequiredauthorization_code | — |
client_id | stringoptionaluuid | Client ID |
client_secret | stringoptional | Client Secret (تنها برای Confidential Client) |
code | stringoptional | — |
redirect_uri | stringoptionaluri | مقدار Redirect URI (باید دقیقاً با مقدار ارسالشده در درخواست Authorization Code یکسان باشد) |
code_verifier | stringoptional | — |
refresh_token | stringoptional | — |
scope | stringoptional | — |
device_code | stringoptional | — |
Response schema
| Field | Type | Description |
|---|---|---|
token_type | string | — |
expires_in | integer | مدت اعتبار Access Token بر حسب ثانیه از زمان صدور. |
access_token | string | — |
refresh_token | string | برای دریافت Access Token جدید استفاده کنید. پس از تمدید، Refresh Token قبلی باطل میشود؛ مقدار تازه پاسخ را نگه دارید. |
| Field | Type | Description |
|---|---|---|
error | stringinvalid_requestinvalid_clientinvalid_scopeinvalid_grantunsupported_grant_typeauthorization_pendingslow_downaccess_deniedexpired_token | — |
error_description | string | — |
message | string | پیام خطای استاندارد پروتکل OAuth |
hint | string | راهنمای رفع خطای درخواست یا Scope در OAuth |