پرش به مطلب اصلی

احراز هویت

تمام وب سرویس‌هایی که نیاز به احراز هویت دارند، با مکانیزم JWT کار می‌کنند. در این مستند به نحوۀ گرفتن این توکن و استفاده از آن می‌پردازیم.

دریافت توکن

کافی است با داشتن username و password وب سرویس زیر را فراخوانی کنید.

POST/v1.1/account/jwt/create/

Request Body

{
"username": "username",
"password": "password"
}

Response Body

{
"refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTczMjk3NzExMSwiaWF0IjoxNzMwMzg1MTExLCJqdGkiOiI5N2Y4YTM3MzI2MDA0YWMyYWM5ZTJhZjRkNTJiNmZkMyIsInVzZXJfaWQiOjE1fQ.6otx_uNIGNwL5Ol7LYSJRwkw3zRLslWZlLPhN7PFJp4",
"access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzMyOTc3MTExLCJpYXQiOjE3MzAzODUxMTEsImp0aSI6ImU4YTI4YTU1NGUwODQ2MzA4MjUzYTAyYmNjNGM0NGVjIiwidXNlcl9pZCI6MTV9.W8brpT9jADlwIt1ZXR2zke4DFu6KQ0pJvMU96B4kHAg",
"pk": 15,
"uuid": "14f8a3fc-287f-4b80-9148-5743c3803214",
"expire_duration": 2592000,
"expires_at": "2024-11-30 18:01:51"
}

Response Codes

Status Code Description
200return access and refresh tokens
401Invalid username or password

استفاده از توکن

مقدار فیلد access را به صورت زیر در هدر ریکوئست‌ها قرار دهید:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzMyOTc3MTExLCJpYXQiOjE3MzAzODUxMTEsImp0aSI6ImU4YTI4YTU1NGUwODQ2MzA4MjUzYTAyYmNjNGM0NGVjIiwidXNlcl9pZCI6MTV9.W8brpT9jADlwIt1ZXR2zke4DFu6KQ0pJvMU96B4kHAg

تمدید توکن

مدت زمان معتبر بودن توکن در ریسپانس در فیلد expire_duration و زمان منقضی شدن آن در فیلد expires_at آمده است. پس از انقضای توکن، می‌توانید از refresh token موجود در ریسپانس، برای دریافت توکن جدید استفاده کنید. برای این منظور لازم است وب سرویس زیر را فراخوانی کنید:

POST/v1.1/account/jwt/refresh/

Request Body

{
"refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTczMjk3NzExMSwiaWF0IjoxNzMwMzg1MTExLCJqdGkiOiI5N2Y4YTM3MzI2MDA0YWMyYWM5ZTJhZjRkNTJiNmZkMyIsInVzZXJfaWQiOjE1fQ.6otx_uNIGNwL5Ol7LYSJRwkw3zRLslWZlLPhN7PFJp4"
}

Response Body

{
"access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzQzNDE0MzA3LCJpYXQiOjE3NDM0MTQyMjAsImp0aSI6IjdmMTczNzNlNjJmZDRkNmFiNWI1ODM5YjRhZGZlYWI4IiwidXNlcl9pZCI6MTV9.0JFgkobMTjkNhSBYKvTQyFGGU3GXkca7Yzajdz9eH2g",
"refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTc0NjAwNjI0NywiaWF0IjoxNzQzNDE0MjQ3LCJqdGkiOiJiYzNhNWU3MmVhZDI0ZmZkOWQ5OWExYjJjMGYzZWE2NCIsInVzZXJfaWQiOjE1fQ.gQJfQUMCreQXU1aq_uYqler10mE0HAMXnnsdLMyD4mQ"
}

Response Codes

Status Code Description
200return new access and refresh tokens
401Invalid refresh token

نکات مهم

اطلاع
  • هر refresh token تنها یکبار معتبر است.

  • در صورت دریافت توکن جدید، توکن قبلی نامعتبر خواهد شد.