Нужно сделать авторизацию т.к я нуб я думаю так: сперва надо найти в БД запись с email, затем проверить такой ли password у email . Если есть способ проще, пожалуйста напишите, можно ссылкой или общим алгоритмом.Спасибо! Изучаю GO поэтому больше уделяю времени на чтение по GO чем по работе с БД и отсюдова такие вопросы .
Да, именно так. Только пароль хранить в виде хеша какого-то.
Про oauth2 - предложение хорошее, но это потом, пока попробуй так сделать а то будет казаться что какая-то магия происходит.
Совсем не так. Это будет два запроса, что не очень логично.
Надо взять за один запрос хеш пароля клинта по имейлу.
Select pwd_hash from user where upper(email) = upper($1);
И если что-то вернулось, то сверить с тем, что пришло с фронта.
Я рекомендую использовать bcrypt, он солит сам, соль не хранит, кост у него для того и сделан, чтобы не бояться таскать этот хеш хоть как. Потому как сравнение будет внутри бинарника.
Если вы храните соль, то, конечно, есть вариант сравнить в базе хеши,но мне так не подходит. Не хочу холиваров, но я потому и люблю bcrypt, что он прячет соль.
Леонид Николаев, но зачем? можно просто посчитать количество строк, где совпадают емэил и "солёный" пароль. Причём ответ от базы придёт в любом случае, а в вашем случае надо убедиться что количество результатов от базы больше нуля, а дальше сравнить. К тому же, пытаетесь забить голову новичку каким-то никому не нужным кроме вас bcrypt-том
Я не предлагаю новичку смотреть, как устроен бкрипт, его можно просто использовать. Но делать сразу надо надёжно, или не делать. Хранить соль, как я писал, я не хочу, но не настаиваю на том, что так нельзя. Проверка наличия ответа о(1), не думаю, что это критично где-либо.
Что же до ненужности современных алгоритиов хеширования, то тут я с вами не согласен, но спорить не буду. Ваше право использовать хоть дек.