Обнаружение неверного формата ключа API Карт Google без вызова API - PullRequest
1 голос
/ 02 мая 2020

У меня есть несколько плагинов, которые позволяют разработчикам использовать API Карт Google javascript. Разработчик несет ответственность за предоставление своего API-ключа при создании приложений с использованием моих плагинов.

В моих примерах кода и приложениях, где необходимо вводить ключ, я привожу примеры типа "(enter your API key here)" или "API_KEY ", потому что они проверены в общедоступном хранилище исходного кода. В данный момент мой плагин просто передает эту строку в API Карт Google "как есть". Единственная проверка, которую я делаю, это проверить, что было введено какое-то значение.

Я хочу простой тест, который (с разумной точностью) определит, является ли данная строка НЕ ​​настоящими Google Maps Ключ API. До сих пор я не видел никакой документации от Google, указывающей, как должна выглядеть строка.

Мне все равно, если мой тест иногда дает ложные срабатывания, потому что разработчик получит ошибку Google Map в время выполнения, если у них нет действительного ключа. Однако я забочусь о ложных негативах; если они предоставят действительный ключ API Карт Google, но мой код ошибочно блокирует его как «недействительный», это будет моей ошибкой.

Все действительные ключи API Карт Google, которые я видел, кажутся ровно 39 символов, состоящих из символов AI, за которыми следуют 37 буквенно-цифровых символов c символов или тире, например:

AIjlSyEI1n03b7-this-is-fake-5tHcDxy1RnI

Я бы рискнул наказать кого-либо, если бы я просто проверил это длина ключа-кандидата не менее 39 символов?

Что если я проверил, что первые два символа AI?

Что если Я проверил наличие таких символов, как (, ) или _?

(если вы видели действующий ключ API Карт Google, который не соответствует приведенным выше правилам) «Я выдумал, не могли бы вы прокомментировать? Это помогло бы опровергнуть мою гипотезу.)

(как указывал MrUpsidown, документация не устанавливает какие-либо правила так или иначе - таким образом, единственный совершенный метод будет Будет ли API - но в моем случае я хочу код, который будет работать изолированно на стороне сервера)

1 Ответ

1 голос
/ 06 мая 2020

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...