godsplane
@godsplane

Безопасно ли использовать АПИ ключ гугла в исходниках?

Использую библотеку fullcalendar для вставки гугл календаря на сайт. По примеру этой библиотеки вывожу календарь так:?
var calendar = new FullCalendar.Calendar(calendarEl, {
    googleCalendarApiKey: 'AIzaSyD36ывввwuRpu8iq7qTl90W6FPvLJDTc',
    initialView: 'timeGridWeek',
    locale: 'ru',
    slotMinTime: '07:00:00',
    slotMaxTime: '23:00:00',
    slotDuration: '01:00:00',
    allDaySlot: false,
    nowIndicator:true,
    slotLabelFormat: {
      hour: 'numeric',
      minute: '2-digit',
      omitZeroMinute:false,
     
      meridiem: 'short'
    },

    expandRows:true,
    eventSources: [
      {
        googleCalendarId: 'h5uvфывфpfmdrsйцу7l6oc@group.cйцуar.google.com'
      }

    ]
  });


То есть любой может увидеть айди календаря и АПИ ключ. Можно ли так делать и безопасно?Если нет, то как спрятать этот ключ праильно?
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
gscraft
@gscraft
Программист, философ
Во-первых, Вы не скроете ничего, что передается с клиентской стороны, где бы оно ни хранилось. Такие ключи как правило публичны и не имеют риска хищения. Скажем, привязаны к домену, а для приватных операций требуют отдельной аутентификации/авторизации. Во-вторых, хранить какие-либо настройки в исходном коде в любом случае плохая идея. Все изменяемые значения должны быть вынесены в конфигурационный файл. Поскольку код должен быть распространяемым (отправляться в версии, применяться в других проектах, использоваться в иных условиях и т.д.). Если у Вас нет сборщика и не хотите усложнять кодовую базу, то как минимум в отдельный, подключаемый JS-файл.

PS Еще один момент, если речь о ключе, который получается в результате аутентификации в Google, то приложение должно позволять локальный логин пользователя, нельзя привязывать приложение к аутентификации глобально. В редких случаях при такой необходимости нужно создавать мост для серверной части, которой делегировать любые операции с закрытой частью API.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы