Ключ API Календаря Google встроен в JS? - PullRequest
0 голосов
/ 27 января 2020

Я пишу приложение в JS, которое извлекает события Календаря Google с помощью API Календаря Google. Я уже сгенерировал ключ API и идентификатор клиента - нужно ли что-то делать, чтобы попытаться «защитить» их? Их учебник помещает их непосредственно в файл JS (https://developers.google.com/calendar/quickstart/js), но затем я копаю дальше в документах разработчика (https://cloud.google.com/docs/authentication/api-keys#securing_an_api_key), и он говорит не вставлять Ключ API в коде ... но это может быть только для платных ключей API?

Я пишу это мини-веб-приложение для класса, поэтому мне нужно, чтобы оно работало около 6 недель. Я размещаю его через GitHub Pages, и именно он предупредил меня о ключе API, когда я нажал код.

Итог - безопасно ли мне вставлять ключ API в * 1016? * код, который отправляется на github и становится общедоступным (поэтому я могу иметь только внешний интерфейс и использовать страницы GitHub)? Или мне нужно принять какие-то профилактические меры?

Заранее спасибо!

1 Ответ

2 голосов
/ 27 января 2020

Ключ API используется только для доступа к публичным c данным. Например, вы можете использовать его для доступа к праздничным календарям Google Calendar publi c. При этом да, вы должны хранить свой ключ API в секрете и не делиться им, но Google знает, что это невозможно с такими языками на стороне клиента, как JavaScript, поэтому я никогда не слышал о том, чтобы кто-то испытывал проблемы с утечкой их ключа API, имея его в приложении JavaScript.

Это предупреждение в основном означает, что вы не должны помещать его в репозиторий с открытым исходным кодом GitHub, который любой может загрузить, а затем запустить. Вы должны проинструктировать людей, как создавать свои собственные.

При этом, если вы пытаетесь получить доступ к личным данным пользователя, вам следует использовать Oauth2 для аутентификации ваших пользователей, и вы можете заблокировать только свой домен из-за необходимость перенаправления URI. Поскольку вы говорите, что создали идентификатор клиента, я подозреваю, что вы уже сделали это. Apikey в коде javascript не требуется строго, если вы добавили идентификатор клиента для oauth2.

...