گوگل google
احراز هویت حساب سرویس گوگل برای APIهای گوگل.
واردسازی گوگل
در این صفحه
برنامههای سرور با یک «حساب سرویس» به APIهای گوگل وصل میشوند. پروندهی جیسون حساب را از کنسول گوگل بگیرید، با تجزیه حساب سرویس بخوانید و با توکن دسترسی برای دامنهی لازم توکن بگیرید؛ بعد آن را با سرآیند مجوز در درخواستهای اچ تی تی پی بفرستید. پروندهی حساب سرویس را مثل گذرواژه نگه دارید.
گونهها
حساب سرویس ServiceAccount
ساختار حساب سرویسحساب سرویس گوگل.
| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| client_email | client_email | رشته = "" | ایمیل حساب. |
| private_key | private_key | رشته = "" | کلید خصوصی PEM. |
| token_uri | token_uri | رشته = "https://oauth2.googleapis.com/token" | نشانی گرفتن توکن. |
| project_id | project_id | رشته = "" | شناسهی پروژه. |
| ok | ok | منطقی = نادرست | درست خوانده شد. |
واردسازی گوگل
روال ریشه:
سند := `{"type":"service_account","project_id":"salam-demo","client_email":"[email protected]","private_key":"(کلید خصوصی اینجا)"}`
ح := گوگل.تجزیه حساب سرویس(سند)
سرچاپ ح.ok، ح.project_id، ح.client_email
سرچاپ ح.token_uri
سرچاپ ح.private_key.طول() > ۰
سرچاپ گوگل.تجزیه حساب سرویس(`{"project_id":"x"}`).ok
سرچاپ گوگل.سرآیند مجوز("ya29.abc")
سرچاپ گوگل.دامنه اف سی ام
سرچاپ گوگل.دامنه ذخیرهسازی
سرچاپ گوگل.دامنه ابر
پایانخروجیtrue salam-demo [email protected]
https://oauth2.googleapis.com/token
true
false
Bearer ya29.abc
https://www.googleapis.com/auth/firebase.messaging
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/cloud-platform
پایاها و متغیرها
دامنه اف سی ام SCOPE_FCM
پایا دامنه اف سی ام: رشته = "https://www.googleapis.com/auth/firebase.messaging"دامنهی دسترسی برای فرستادن اعلان با Firebase Cloud Messaging.
نمونهی این مورد همراه با موارد بالاتر آمده است: google-Account.salam
دامنه ذخیرهسازی SCOPE_STORAGE
پایا دامنه ذخیرهسازی: رشته = "https://www.googleapis.com/auth/devstorage.read_write"دامنهی خواندن و نوشتن در Cloud Storage.
نمونهی این مورد همراه با موارد بالاتر آمده است: google-Account.salam
دامنه ابر SCOPE_CLOUD
پایا دامنه ابر: رشته = "https://www.googleapis.com/auth/cloud-platform"دامنهی کامل Google Cloud.
نمونهی این مورد همراه با موارد بالاتر آمده است: google-Account.salam
روالها
تجزیه حساب سرویس ParseServiceAccount
روال تجزیه حساب سرویس(document: رشته): حساب سرویسپروندهی جیسون حساب سرویس را میخواند.
نمونهی این مورد همراه با موارد بالاتر آمده است: google-Account.salam
توکن دسترسی AccessToken
روال توکن دسترسی(sa: حساب سرویس، scope: رشته، ok &: منطقی): رشتهتوکن دسترسی OAuth برای دامنهی دادهشده میگیرد؛ توکن تا پیش از انقضا نگه داشته و دوباره به کار میرود.
واردسازی گوگل
واردسازی ورودی خروجی
واردسازی شبکه.اچ تی تی پی شبکه
روال ریشه:
ح := گوگل.تجزیه حساب سرویس(ورودی خروجی.خواندن پرونده("service-account.json"))
اگر وارونه ح.ok:
سرچاپ "پروندهی حساب سرویس درست نیست"
برگشت
پایان
ناپایا سالم := نادرست
توکن := گوگل.توکن دسترسی(ح، گوگل.دامنه ذخیرهسازی، سالم)
اگر وارونه سالم:
سرچاپ "توکن گرفته نشد"
برگشت
پایان
ناپایا سر := اچ تی تی پی شبکه.سرصفحه جدید()
سر.درج("Authorization"، گوگل.سرآیند مجوز(توکن))
پ := اچ تی تی پی شبکه.دریافت با("https://storage.googleapis.com/storage/v1/b?project=" + ح.project_id، سر)
سرچاپ اچ تی تی پی شبکه.وضعیت(پ)
گوگل.فراموش کردن توکن(ح)
پایانفراموش کردن توکن Forget
روال فراموش کردن توکن(sa: حساب سرویس)توکن نگهداشتهی حساب را دور میاندازد تا دفعهی بعد تازه گرفته شود.
نمونهی این مورد همراه با موارد بالاتر آمده است: google-Token.salam
سرآیند مجوز Authorization
روال سرآیند مجوز(token: رشته): رشتهمقدار سرآیند
Authorization با توکن.نمونهی این مورد همراه با موارد بالاتر آمده است: google-Account.salam