ویژگیهای ARCore مانند Geospatial API و Cloud Anchors از ARCore API میزبانی شده در Google Cloud استفاده میکنند. هنگام استفاده از این ویژگیها، برنامه شما از اعتبارنامهها برای دسترسی به سرویس ARCore API استفاده میکند.
این راهنمای سریع نحوه تنظیم برنامه شما را شرح میدهد تا بتواند با سرویس ARCore API میزبانی شده در Google Cloud ارتباط برقرار کند.
یک پروژه جدید Google Cloud ایجاد کنید یا از یک پروژه موجود استفاده کنید
اگر پروژهای از قبل دارید، آن را انتخاب کنید.
اگر پروژه Google Cloud ندارید، یکی ایجاد کنید.
فعال کردن API ARCore
برای استفاده از API ARCore، باید آن را در پروژه خود فعال کنید.
یک روش مجوزدهی تنظیم کنید
یک برنامه iOS میتواند با استفاده از دو روش مختلف احراز هویت با API ARCore ارتباط برقرار کند: احراز هویت بدون کلید، که روش پیشنهادی است، و احراز هویت با کلید API:
- احراز هویت بدون کلید از یک توکن امضا شده برای کنترل دسترسی به API استفاده میکند. این روش به سروری متعلق به شما نیاز دارد تا توکنها را امضا کرده و دسترسی به API را کنترل کند.
- کلید API رشتهای است که یک پروژه Google Cloud را شناسایی میکند. کلیدهای API معمولاً امن در نظر گرفته نمیشوند زیرا معمولاً برای کلاینتها قابل دسترسی هستند. برای ارتباط با API ARCore، استفاده از مجوز توکن را در نظر بگیرید.
بدون کلید
ARCore از احراز هویت فراخوانیهای API در iOS با استفاده از یک ( توکن وب JSON ) پشتیبانی میکند. این توکن باید توسط یک حساب سرویس گوگل امضا شود.
برای تولید توکن برای iOS، باید یک نقطه پایانی روی سرور خود داشته باشید که شرایط زیر را برآورده کند:
مکانیزم مجوزدهی شما باید از نقطه پایانی محافظت کند.
نقطه پایانی باید هر بار یک توکن جدید تولید کند، به طوری که:
- هر کاربر یک توکن منحصر به فرد دریافت میکند.
- توکنها بلافاصله منقضی نمیشوند.
ایجاد یک حساب کاربری سرویس و کلید امضا
برای ایجاد یک حساب کاربری سرویس گوگل و کلید امضا، این مراحل را دنبال کنید:
- در گوگل کلود، صفحه اعتبارنامهها (Credentials) را باز کنید.
مدارک تحصیلی - روی ایجاد اعتبارنامهها > حساب سرویس کلیک کنید.
- Under Service account details , type a name for the new account, then click Create .
- در صفحه مجوزهای حساب سرویس، به منوی کشویی «انتخاب یک نقش» بروید. «حسابهای سرویس» > «ایجادکننده توکن حساب سرویس» را انتخاب کنید، سپس روی «ادامه» کلیک کنید.
- در صفحه «اعطای دسترسی به حساب کاربری این سرویس برای کاربران» ، روی «انجام شد» کلیک کنید.
- در صفحه اعتبارنامهها ، بخش حسابهای سرویس (Service Accounts) را پیدا کنید و روی نام حسابی که تازه ایجاد کردهاید کلیک کنید.
- در صفحه جزئیات حساب سرویس ، به پایین صفحه بروید تا به بخش کلیدها برسید و گزینه افزودن کلید > ایجاد کلید جدید را انتخاب کنید.
نوع کلید را JSON انتخاب کنید و روی Create کلیک کنید.
این یک فایل JSON حاوی کلید خصوصی دستگاه شما دانلود میکند. فایل کلید JSON دانلود شده را در یک مکان امن ذخیره کنید.
توکنها را روی سرور خود ایجاد کنید
برای ایجاد توکنهای جدید (JWT) روی سرور خود، از کتابخانههای استاندارد JWT و فایل JSON که به طور ایمن از حساب سرویس جدید خود دانلود کردهاید، استفاده کنید.
توکنها را روی دستگاه توسعه خود ایجاد کنید
برای تولید JWTها در دستگاه توسعه خود، از دستور oauth2l زیر استفاده کنید:
oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"
مشخص کردن یک مکان خالی در حافظه پنهان با استفاده از پرچم --cache برای اطمینان از تولید توکن متفاوت در هر بار ضروری است. حتماً رشته حاصل را برش دهید. فاصلههای اضافی یا کاراکترهای خط جدید باعث میشوند API توکن را رد کند .
توکن را امضا کنید
شما باید از الگوریتم RS256 و ادعاهای زیر برای امضای JWT استفاده کنید:
-
iss— آدرس ایمیل حساب کاربری سرویس. -
sub— آدرس ایمیل حساب کاربری سرویس. -
iat— زمان تولید توکن در عصر یونیکس، بر حسب ثانیه. -
exp—iat+3600(1 ساعت). زمان انقضای توکن در یونیکس، بر حسب ثانیه. -
aud— مخاطب. باید رویhttps://arcore.googleapis.com/تنظیم شود.
ادعاهای غیر استاندارد در JWT payload الزامی نیستند، اگرچه ممکن است ادعای uid برای شناسایی کاربر مربوطه مفید باشد.
اگر از رویکرد متفاوتی برای تولید JWT های خود استفاده میکنید، مانند استفاده از API گوگل در یک محیط مدیریتشده توسط گوگل، حتماً JWT های خود را با ادعاهای این بخش امضا کنید. مهمتر از همه، مطمئن شوید که مخاطب درست میگوید.
توکن را در جلسه ARCore ارسال کنید
با استفاده از
GARSession#sessionWithError:یک جلسه بسازید.NSError *error = nil; GARSession *garSession = [GARSession sessionWithError:&error];وقتی یک توکن دریافت کردید، آن را با استفاده از
setAuthToken:به session ارسال کنید. در غیر این صورت، session از جدیدترین توکن مجوز معتبری که ارسال کردهاید استفاده خواهد کرد. هر بار که توکن خود را بهروزرسانی میکنید، این متد را فراخوانی کنید:[garSession setAuthToken: authToken]
اکنون برنامه شما برای استفاده از احراز هویت بدون کلید پیکربندی شده است.
هنگام ارسال توکن به session به نکات زیر توجه کنید:
اگر از کلید API برای ایجاد جلسه استفاده کرده باشید، ARCore توکن را نادیده گرفته و خطایی را ثبت میکند.
اگر دیگر به کلید API نیاز ندارید، آن را در کنسول توسعهدهندگان گوگل حذف کنید و از برنامه خود حذف کنید.
ARCore توکنهایی که حاوی فاصله یا کاراکترهای خاص باشند را نادیده میگیرد.
توکنها معمولاً پس از یک ساعت منقضی میشوند. اگر این احتمال وجود دارد که توکن شما در حین استفاده منقضی شود، یک توکن جدید دریافت کرده و آن را به API ارسال کنید.
کلید API
- در گوگل کلود، صفحه اعتبارنامهها (Credentials) را باز کنید.
مدارک تحصیلی - روی ایجاد اعتبارنامه کلیک کنید، سپس کلید API را از منو انتخاب کنید.
کادر محاورهای ایجاد کلید API، رشته مربوط به کلید تازه ایجاد شده شما را نمایش میدهد. هنگام ایجاد
GARSession، ازGARSession#sessionWithAPIKey:bundleIdentifier:error:استفاده کنید و کلید API خود را وارد کنید:self.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];- برای ایمنسازی کلید API خود ، مستندات مربوط به محدودیتهای کلید API را بررسی کنید.
اکنون برنامه شما برای استفاده از کلیدهای API پیکربندی شده است.
قدم بعدی چیست؟
پس از پیکربندی مجوز، ویژگیهای ARCore زیر را که از آن استفاده میکنند، بررسی کنید: