احراز هویت

اولین قدم برای اتصال به api‌های پذیرش۲۴، پیاده سازی سازی استاندارد OAuth2 (opens in a new tab) در برنامه‌ شماست. بدین منظور ابتدا کلاینت خود را بسازید و پس از آن با هدایت کاربر به سایت پذیرش۲۴ دسترسی‌های لازم را از او بگیرید و سپس می‌توانید به عنوان وکیل کاربر به منابع تحت مالکیت او دسترسی داشته باشید.

ایجاد کلاینت

همانطور که پیش‌تر گفته شد توسعه‌دهندگان می‌توانند به عنوان وکیل کاربر به مدیریت منابع او بپردازند. در لایه پیاده‌سازی این اتفاق از طریق یک کلاینت اتفاق می‌افتد.

برای ایجاد کلاینت به تلگرام (opens in a new tab) پیام بدهید.

دریافت دسترسی از کاربر

ساخت لینک اعطای دسترسی و انتقال کاربر به آن

به منظور دریافت دسترسی، می‌بایست کاربر به صفحه‌ی اعطای دسترسی در سایت پذیرش۲۴ منتقل شود. این عملیات می‌تواند بعد از کلیک کاربر روی دکمه‌ای در اپلیکیشن شما اتفاق بیفتد.

الگوی آدرس به شکل زیر می‌باشد:

https://user.paziresh24.com/realms/paziresh24/protocol/openid-connect/auth
?client_id=[client_id]&response_type=code&scope=[scope]&redirect_uri=[client_redirect_uri]&state=[state]
  • client_id: آی‌دی کلاینت ایجاد شده در مرحله قبلی
  • scope: رشته‌ای از دسترسی‌های درخواستی که با کاما "," یا فاصله جدا شده‌اند
  • client_redirect_uri: آدرسی که کاربر بعد از اعطای دسترسی به آن هدایت می‌شود، این آدرس باید همان آدرسی باشد که در ایجاد کلاینت قرار داده‌اید
  • state: یک رشته دلخواه که در درخواست‌های بعدی به کلاینت شما ارسال می‌شود

بازگشت کاربر به برنامه شما و دریافت توکن کاربر

بعد از تایید کاربر در مرحله اول، او به برنامه شما با الگوی زیر هدایت می‌شود:

[redirect_uri]?code=[code]&state=[state]
  • redirect_uri: آدرسی برنامه شما
  • code: کد یک‌بار مصرف ایجاد شده توسط سرویس احراز هویت به منظور دریافت توکن
  • state: مقدار دلخواهی که در مرحله اول ارسال کرده‌اید

در این هنگام، برای دریافت توکن کاربر، می‌بایست درخواست زیر را به سرویس احراز هویت ارسال نمایید:

curl --request POST \
  --url https://user.paziresh24.com/realms/paziresh24/protocol/openid-connect/token \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{
        "grant_type" : "authorization_code",
        "client_id" : "[client_id]",
        "client_secret" : "[client_secret]",
        "redirect_uri" : "[redirect_uri]",
        "code" : "[code]"
}'
  • client_id: آی‌دی کلاینت شما
  • client_secret: رمز اختصاص داده شده به کلاینت پس از ایجاد آن
  • redirect_uri: آدرس برنامه شما
  • code: کد دریافتی در کوئری پارامتر

در صورت صحیح بودن اطلاعات، پاسخ دریافتی به صورت زیر است:

{
  "token_type": "Bearer",
  "expires_in": 31622400,
  "access_token": "...",
  "refresh_token": "..."
}
  • token_type: نوع توکن برگشتی، که نوع Bearer هست.
  • expires_in: زمان معتبر بودن توکن به ثانیه
  • access_token: توکن کاربر
  • refresh_token: توکنی برای دریافت توکن جدید زمانی که توکن کاربر منقضی شده

درخواست به APIها

از الان می‌توانید با access_token بدست آورده به APIهای پذیرش۲۴ درخواست ارسال کنید.