کتابخانه سرویس گیرنده Google APIs برای دات نت از فایل های client_secrets.json
برای ذخیره سازی client_id
، client_secret
و سایر پارامترهای OAuth 2.0 استفاده می کند.
فایل client_secrets.json
یک فایل با فرمت JSON است که شامل شناسه مشتری، رمز سرویس گیرنده و سایر پارامترهای OAuth 2.0 است. در اینجا یک نمونه فایل client_secrets.json
برای یک برنامه وب آورده شده است:
{ "web": { "client_id": "asdfjasdljfasdkjf", "client_secret": "1912308409123890", "redirect_uris": ["https://www.example.com/oauth2callback"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token" } }
در اینجا یک نمونه فایل client_secrets.json
برای یک برنامه نصب شده است:
{ "installed": { "client_id": "837647042410-75ifg...usercontent.com", "client_secret":"asdlkfjaskd", "redirect_uris": ["http://localhost"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token" } }
فرمت یکی از دو نوع شناسه مشتری را تعریف می کند:
-
web
: برنامه وب. -
installed
: برنامه نصب شده
web
و اشیاء فرعی installed
دارای اعضای اجباری زیر هستند:
-
client_id
(رشته): شناسه مشتری. -
client_secret
(رشته): راز مشتری.
همه اعضای دیگر این فایل اختیاری هستند و کتابخانه سرویس گیرنده دات نت از آنها استفاده نمی کند.
انگیزه
به طور سنتی، ارائهدهندگان نقاط پایانی OAuth 2.0 از کسانی که از خدمات آنها استفاده میکنند انتظار داشتند که شناسه مشتری و راز مشتری را از یک صفحه ثبت نام در کد کاری کپی و جایگذاری کنند. این روش مستعد خطا است و تصویر ناقصی از اطلاعات مورد نیاز برای کارکرد OAuth 2.0 ارائه می دهد. (OAuth 2.0 همچنین به دانستن تمام نقاط پایانی و پیکربندی یک URI تغییر مسیر نیاز دارد.) اگر ارائه دهندگان خدمات فایل های client_secrets.json
قابل دانلود را ارائه دهند و کتابخانه های سرویس گیرنده برای مصرف این فایل ها آماده باشند، پیاده سازی OAuth 2.0 آسان تر و کمتر مستعد خطا خواهد بود.