Vladis🩸Love ️
Я
ALEX
Я
https://ipinfo.io/developers я этим пользуюсь. Get Запрос с ip - ответ в json. 1000 запросов в день халявные.
Пример ответа:
{
"ip": "203.205.28.14",
"hostname": "static.cmcti.vn",
"city": "Ho Chi Minh City",
"region": "Ho Chi Minh City",
"country": "VN",
"loc": "10.8142,106.6438",
"org": "AS45903 CMC Telecom Infrastructure Company"
}
Ivan
Все уже написано, нужно переделать некоторые формы и дописать перевод в нужные места. Для шарящего в node js задача простая
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Как-то я не очень догоняю про авторизацию и токены. Имеем рестфул.
Каждый раз, при обращении к серверу(по любому эндпоинту) перед тем, как делать выборку по эндпоинту, мы сначала берем из базы токен, сверяем его, если да, то next, если нет, то 401. Вопрос, а если человек делает 3000 запросов в день, можно ли не доставать каждый раз токен из базы? Достать токен 1 мс, но если пользователей тысячи?
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
С авторизацией 200 мс обрабатывается запрос, без нее 160 мс. Как ускорить этот процесс?
Дмитрий
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Пересмотрел все примеры, там каждый раз достается из базы...
Дмитрий
Кешируй в Redis или Nedb
Дмитрий
Кеширование нужно на уровне приложения тогда
Дмитрий
А почему JWT просто не расшифровывается? ведь там может быть нужная инфа
Bogdan
Anton
Редис в ram лежит
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Anton
Он оч быстрый
Дмитрий
редис - инмемори, постгри - классическая реляционная субд. но я бы советовал посмотреть на задачу... вполне может оказаться она не реляционная
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Почитаю про редис, спасибо
Дмитрий
Если можно задачу в нереляцию положить - то можно монгу... на для ноды она более однородна
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Дмитрий
раз уже готовое... можно еще индексы таблицы постгри сделать. чтобы на уровне БД быстрее работало
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Bogdan
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Fedor
Как-то я не очень догоняю про авторизацию и токены. Имеем рестфул.
Каждый раз, при обращении к серверу(по любому эндпоинту) перед тем, как делать выборку по эндпоинту, мы сначала берем из базы токен, сверяем его, если да, то next, если нет, то 401. Вопрос, а если человек делает 3000 запросов в день, можно ли не доставать каждый раз токен из базы? Достать токен 1 мс, но если пользователей тысячи?
С jwt можно токен проверять без обращения к бд
Дмитрий
Зачем в БД ломиться...
Bogdan
А вообще, по моему, не стоит заморачиваться. 3000 запросов в день — это ерунда, не очень то ты теряешь на проверке авторизации
Fedor
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Система будет расширяться до 10к пользователей, и это должно работать очень быстро, так как есть еще куча долгих обработок
Bogdan
Дмитрий
Bogdan
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
Видимо ....блат, в метро раздавили...придется архетиктурно извернуться.
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
У меня знакомый в 7мс уложился. При том же железе
Дмитрий
без сетевых издержек 7мс?
Дмитрий
так там скорее всего другая архитектура... да и если честно не реальные циферы
Дмитрий
7мс только роутер экспресса выполняться будет
Дмитрий
без мидлварей и прочего
Дмитрий
7мс я получал только на голом коннекте (задачи минимальной обработки и отправки) и без учета сетевых издержек... но это потом поддерживать не реально
𝒟𝓂𝒾𝓉𝓇𝒾𝓎
На коа, коа быстрее
Дмитрий
На коа, коа быстрее
Нет, со всеми обвесами они примерно одинаковое время покажут. Единственное преимущество коа - ты можешь не ставть модули, которые тебе не нужны... как понимаю вы уже сделали из него аналог экспресса)
Cenator 🐈
Дмитрий
Дмитрий
кстати
Tony
привет))
Таймураз
Паспорт неповоротливая хрень
Таймураз
Можешь передавать request в паспорте (нужно параметр еще один передавать) и самостоятельно это поле проверять
Ale
а npm теперь совсем на shrinkwrap не смотрит?
Ale
или надо с каким-то флагом запускать
Sergey
Ale
как только поставлю нужные версии)
Nikita
yarn
Ale
ярн точно не может из шринкврапа ставить, я с радостью возьму package-lock, когда смогу поставить из shrinkwrap зависимости
Yarik
Всем привет)
Yarik
Нужен совет)
Yarik
Есть два node.js приложения, лежат в одной папке. Работают с MySQL через ORM Sequelizejs, запускаю их одновременно ложится MySQL, по одиночке все ок
Yarik
Что это может быть ?) Уже все гуглил)
Миша
Ale
и теперь на пятом если запустить, то он обновит формат
Ale
а новый shrinkwrap имеет тот же формат, что и package-lock?
Sergey
Ale
One key detail about package-lock.json is that it cannot be published, and it will be ignored if found in any place other than the toplevel package. It shares a format with npm-shrinkwrap.json
Ale
https://docs.npmjs.com/files/package-lock.json 🤔
Ale
короч сработало откатить npm на 4, установить, поставить 5, обновить shrinkwrap и потом переименовать его в package-lock. Очевидно все 👍
Bogdan
Ale
енот
Помогите советом.
Я использую passport-ldapauth
Вот я отмучился и получаю "status": "ok"
а как мне дальше быть? Я никогда раньше с паспортом вообще не работал. Мне как-то придумать токен, сохранить на сервере, отдать юзеру и по нему смотреть? Или где-то я в доке прошляпил и всё это уже есть?
енот
в хидере мне ETag пришел, это не оно?
Yar
изучу. спасибо
ALEX
енот
енот
ладно, примерно понятно куда копать, примреы с ним я смотрел для другого проекта
ALEX
ммм
с паспортом норм работает. Кажется он в стандартной связке
енот
да, просто я не очень в этом всём
енот
так, на удивление CTRL+C CTRL+V сработал
енот
теперь надо как- то с безопасностью