Формат ключа сервера API Google/Youtube для предварительной проверки

Контекст: я обновляю свой плагин WordPress для аутентификации в API YouTube v3 с использованием ключа сервера, который должен быть запрошен и введен пользователем плагина.

Проблема: я хотел бы выполнить какую-либо проверку этого ключа перед его использованием, но не могу найти документацию по формату, которому придерживается ключ сервера Google API. На основании (очень ограниченного) количества примеров кажется, что ключом является:

  • длина 39 символов
  • чувствителен к регистру
  • состоит из букв, цифр и как минимум тире

Итак, вопрос, очевидно: это где-то задокументировано? Кто-нибудь может подтвердить или расширить?

Благодарность,

откровенный


person futtta    schedule 23.02.2015    source источник
comment
Прочерки появляются не всегда. Может быть, подчеркивание? У всех моих было по крайней мере 1 подчеркивание.   -  person eyegropram    schedule 04.03.2015
comment
Я не видел документации, описывающей формат хэша. Он генерируется на основе ряда других данных. Ближе всего к проверке этого я видел: группы. google.com/forum/#!topic/google-maps-api/YgYdJ04hcZI, однако это относится к КЛЮЧУ API версии 2.   -  person eyegropram    schedule 04.03.2015


Ответы (2)


Я также не смог найти какой-либо опубликованный формат ключа. Может быть, потому что они хотят сохранить свободу изменения формата в будущем. Если вы хотите быть в безопасности, вам, вероятно, следует просто выполнять проверки работоспособности намного выше наблюдаемого формата. Например, ‹=1024 байта и неуправляющие символы ascii, или даже base64, или вообще не делайте никакой проверки и позвольте Google сделать это.

person Christian    schedule 02.03.2015
comment
спасибо за этого христианина. что вы имеете в виду под или даже base64? - person futtta; 04.03.2015
comment
хм, как можно идентифицировать строку как закодированную в base64? - person futtta; 05.03.2015
comment
Вы можете проверить, кратна ли длина 4, имеет ли AZ, az, 0-9, +, / и заканчивается от нуля до 2 равных символов. Затем вы также можете попробовать расшифровать его на любом языке и отловить любые ошибки. Javascript имеет функции для кодирования base64 atob() и btoa() - person eyegropram; 05.03.2015
comment
спасибо, но похоже, что есть высокий риск ложных срабатываний, поэтому я не думаю, что буду это делать :-) - person futtta; 05.03.2015

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

person eyegropram    schedule 04.03.2015
comment
Он сказал, прежде чем использовать его, я предполагаю, что он имеет в виду, прежде чем ударить им сервер Google. - person gabeio; 05.03.2015
comment
действительно, цель состояла в том, чтобы предварительно квалифицировать ключ. - person futtta; 05.03.2015
comment
Вы можете использовать упомянутый метод для предварительной квалификации, сначала протестировав его. Вот почему я упомянул об этом с помощью асинхронного вызова, чтобы вы могли обрабатывать его на стороне клиента. - person eyegropram; 05.03.2015