Лучший способ проверить подлинность использования файла node.js? - PullRequest
0 голосов
/ 08 октября 2019

У меня есть файл node.js, который при запуске сначала аутентифицирует пользователя, читая две строки из файла JSON.

Однако основная проблема с этим подходом:

JSON FILE

{
    "id": "12345",
    "apiKey": "foo"
}

JS FILE

if (jsonFile.id === "123" && jsonFile.apiKey === "foo") {
    return true;
} else {
    return false;
}

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

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

Я не хочу, чтобы программа, которую я предоставляю пользователю, могла запускать разные apiKey или id, только те, которые я определил в программе, и они не должны иметь возможность ее изменять.

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

1 Ответ

0 голосов
/ 08 октября 2019

Если ваш файл node.js запущен на вашем сервере и вы аутентифицируете запросы от ваших клиентов, то вам следует посмотреть на passport.js или другую библиотеку аутентификации. Учетные данные никогда не должны передаваться на сервер в виде открытого текста, но даже если ваш клиент изменяет учетные данные, это не означает, что они будут аутентифицированы на сервере, потому что сервер аутентифицируется с использованием базы данных зарегистрированных пользователей. Ваш пример показывает, что вы ищете аутентификацию "токен на предъявителя" (apiKey), поэтому вот ссылка на документы passport-http-bearer на веб-сайте passportjs.org.

...