Anonymous
'email': email, 'password': password
Ну вот так получается, верно?
AstraSerg
Я не совсем понимаю просто, одного момента, на каком уровне происходит "авторизация", мне при регистрации нового пользователя создавать отдельную коллекцию и пихать уже туда все его данные, или же, все же пользователи и записи хранить отдельно друг от друга?
Просто добавьте в ту же коллекцию всю информацию, которую хотите хранить для пользователя. Правда тут есть одно « Но». Иногда имеет смысл сделать отдельную коллекцию с этими дополнительными данными по пользователю. Один их таких случаев — это когда объем данных превашает 16 мегабайт (максимальный размер документа в монге)
Anonymous
А если кто-то другой возьмет и подставить чужой ID он же сможет получить доступ к любой записи
Anonymous
Так, ладно. Может мне кто подсказать туториал для самых "маленьких"?
Anonymous
А то я своими тупыми вопросами вас тут достану скоро) Да и не хочется идиотом полным выглядеть c:
AstraSerg
Ну, 16мб я вряд ли перевалю... А вот... на счет первого. Получается, когда я хочу зарегистрировать нового пользователя, мне нужно для него создавать новую коллекцию?
Нет, в коллекцию пишите все записи про пользователей. Один пользователь — один документ в коллекции. По по воду архитектуры здесь почитайте https://docs.mongodb.com/ecosystem/use-cases/storing-comments/
Anonymous
Node
Oleg
Node
express?
Anonymous
+
AstraSerg
А то я своими тупыми вопросами вас тут достану скоро) Да и не хочется идиотом полным выглядеть c:
Да перестеньте вы уже извинятся. :) Все мы проходили через эту стадию и только рады помочь.
Anonymous
Ну я так и так умею. Хоть с экспрессом, хоть без него
Oleg
+
https://jonathanmh.com/express-passport-json-web-token-jwt-authentication-beginners/
Oleg
jwt — стильно, модно!
Anonymous
JWT чет санными тряпками били, типа дырявый он
Vova
JWT чет санными тряпками били, типа дырявый он
Если правильно сделать то не дырявый. Там же данные открытые, их можно подменить но не выйдет переподписать, нужны правильные проверки ну и всё такое
Anonymous
Если правильно сделать то не дырявый. Там же данные открытые, их можно подменить но не выйдет переподписать, нужны правильные проверки ну и всё такое
Ну как обычно, надо правильно готовить) Я мельком этот холивар читал, там столько грязи было :D Пожалуй, этот канал, самый спокойный что я встречал)
Anonymous
для начала определитесь что вам нужно, хранит ьпросто пароли не в открытом виде, или все данные пользователя сделать недосутпными для других людей
Сначала первое. В общем, у меня есть уже готовая страничка написанная на реактив, где есть де формы, регистрация и вход. Пока, мне достаточно было бы иметь возможность зарегистрировать нового пользователя и после успешной авторизации вывести его имя типа "ХЕЛЛО НОУНЕЙМ")
Anonymous
Step-by-step как говорится)
Nick
если вы начинаете озабачиваться о безопасности, то стоит расписат ьвектор атак от которых вы хотете защититься, этакая модель угроз. относительно ее уже дальше проектироват ьвсю систему. без этого все бессмысленно.
Nick
например, человек получивший доступ к бд не мог получить пароль пользователя, а лишь его испортить или подменить
Anonymous
Ну, у меня пожалуй весьма стандартный стек. 0. Челок получивший доступ к бд не мог получить пароль пользователя 1. Обезопасить себя, от слива всей базы 2. Новый пользователь не мог иметь доступа к записям чужого пользователя
Anonymous
Короче, я понял, первое что мне нужно, это зашифровать пароли)
Nick
это самое простое, а вот второе и третье - это уже больше организационные методы и предотвращение эксплойтов на стороне приложухи. ведь абсолютно бессмысленно упарываться в безопасность, если на сервак можно залит ьфайлик и потом его удаленно запустить
Anonymous
Ну, дело в том, что я позиционирую свой проект больше как портфолио и глубоко углубляться в безопасность мне бы не хотелось, все таки, это уже работа тех людей, который настраивают сервера, а пока, все у меня крутиться на локальной машинке.
Nick
в хорошо спроектированной софтине и полностью лояльной команде админов можно полностью исключить настройку безопасности за приложухой (БД, всякие файлопомйки и т.п.)
Anonymous
Ладно. Для старта. Мои текущие действия. Я создаю коллекцию зарегистрированных пользователей с зашифрованными паролями. А дальше вернусь уже дальше вопросики свои задавать)
Nick
ага, пока не надо на это распыляться, просто держать в голове что этим надо будет озаботиться
AstraSerg
Короче, я понял, первое что мне нужно, это зашифровать пароли)
Лучше захешировать с солью. Что бы даже в теории нельзя было получить исходный пароль.
Anonymous
Лучше захешировать с солью. Что бы даже в теории нельзя было получить исходный пароль.
Ну на счет этого я в курсе. Щас буду гуглить как это правильно сделать Node
Sardor
Ребят, а как искать по айди объекта в бд? Делаю вот так: db.collection('complete').find({_id: objId}).toArray() - не находит. *objId == айди объекта в формате 5bbb37a64631322f2c819606
AstraSerg
Соль — это не секрет и метод — это не секрет. По этому поводу можно почитать как сделана аутентификация в *nix системах. Ща ссыль поищу....
Nick
Ребят, а как искать по айди объекта в бд? Делаю вот так: db.collection('complete').find({_id: objId}).toArray() - не находит. *objId == айди объекта в формате 5bbb37a64631322f2c819606
вам нужно указаться объект типа ObjectID, чтобы по нему искало. он делается из строки которую указали
Sardor
Все ещё на нативном драйвере сидишь?
хочу перейти, но все руки не доходят на этой недельке, думаю, успею
Nick
зависит от языка и драйвера, проще всего в доке найти пример
Anonymous
Ох, что-то странное происходит. В общем. Тут лучше гистами уже отправлять. Вот так я создал экземпляр своего соединения https://gist.github.com/demidborodin/39f9588b611c374a48657ec685bfc242
Anonymous
Я принимаю пост запрос, с другого сервера, в первый раз все окей, но стоит отправить запрос повторно
Anonymous
в консоль вываливается вот такая дичь
Anonymous
Ну и вот код моего супер сложного сервера))) https://gist.github.com/demidborodin/515c57937780c31435db1375163f10ba Есть какие нибудь идеи
Anonymous
зачем
Хм, ну что бы создать "экземпляр" коннекта и потом его во все модули таскать, куда мне нужно...
倫太郎
а вообще, я бы взял монгуз
Anonymous
倫太郎
ну, читабельнее код, это для начала
Anonymous
Ну у меня привычка давно такая. Сначала либы, потом константы, потом модуль который я экспортирую.
Anonymous
Суть дела это вроде не меняет)
倫太郎
Суть дела это вроде не меняет)
лан, у тебя какая монга то?
Anonymous
4.0.2
Sardor
вечер добрый! Подскажите, пожалуйста, при каких обстоятельствах (как надо налажать) может не находиться объект в монгe? Пишу bot.action(/sendLoc_*/, (ctx) => { let objId = ctx.match.input.substr(8) ctx.answerCbQuery() console.log(objId) db.collection('complete').find({orderId: objId}).toArray() .then((src) => { console.log(src) bot.telegram.sendLocation(62253745, src[0].location.latitude, src[0].location.longitude) }) .catch((err) => console.log(err)) }) , выходит пустой массив. Смотрю в комассе, там точно есть объект, который мне нужен и в нужной коллекции
Anonymous
Я второй день или третий уже с монго бадаюсь и пока я не стремлюсь за качеством кода... мне бы как бы, пришли данные, проверить данные, записать данные... на данном этапе меня вроде как больше ничего не интересует)
Anonymous
кроме как ошибки в консоле)
AstraSerg
кроме как ошибки в консоле)
В консоли монги работает?
Sardor
Может типы orderId и objId разные? Число и строка например
Блин, реально. Не представляете, как я благодарен Вам:)
倫太郎
Блин, реально. Не представляете, как я благодарен Вам:)
ты везде будешь по кусочкам спрашивать про бота своего?
Anonymous
Sardor
ты везде будешь по кусочкам спрашивать про бота своего?
по соответствующим теме вопроса чатам, в телеграфе же возмущаться начали, шо не по теме
AstraSerg
AstraSerg
Судя по всему да
Не, я спрашиваю ваши запросы если в консоли выполнить, работает?
Anonymous
Ща через Postman попробую. Я по факту ничего не делаю. Просто перехожу по урлу, открываю коннект, закрываю коннект. Все...
Anonymous
Никаких запросов и т.д.
AstraSerg
Просто я в монгузе, как 🐖 в апельсинах :)
Anonymous
Да дичь какая-то...
Anonymous
Вроде все пашет, но зачем мне каждый раз такое вываливать в консоль
Anonymous
Ща пойду ишью почитаю
Anonymous
М, кайф, у них ишью нет...
Anonymous
Пришлось на редеете тему запилить)
Anonymous
Мда, просто целый день в никуда, так я и не понял от куда этот варниннг лезет
Gleb
ребята, я подвис с $lookup. Он как то не так работает в монгусе, да?