Добавлена регистрация и личный кабинет со статистикой по интуиции.
Думал быстренько сделаю такую простую штуку. До этого делал регистрацию на php, и это было не слишком сложно, а тут встрял.
Начал читать статьи, нашел что можно через куки, а можно через jwt токен. Ладно, думаю разберусь с куками и сессиями для начала. Поставил redis в докер чтобы хранить сессии, библиотеку express-session чтобы с ними работать, bcryptjs чтобы пароль хешировать (раньше создавал авторизацию на php и просто сам пароль сохранял, теперь решил все правильно сделать), cookie-parser чтобы он занчит куки разбирал. Почитал как это всё настроить, сделал - ни фига не работает. Начал искать, переписывать это так и так, несколько дней бился с этим всем. И думал у меня с редисом что-то не то сначала, потом настраивал по всякому библиотеку CORS для ноды, и вручную заголовки эти для корс вставлял, и на стороне ангуляра нашел как включить credentials в true. Короче насколько я понял браузер не хочет слать куки на другой домен через небезопасный http, не смотря ни на какой включенный cors, и чтобы это делать надо поднять специальный прокси для ангуляра, что впрочем не очень сложно кажется делается.
Ладно думаю фиг с ним, потом разберусь, буду через jwt авторизовывать пользователя. Выпилил функционал весь для куков пока что, добавил библиотеку jsonwebtoken, разобрался как в ангуляре создать http перехватчик чтобы он заголовок с ключом добавлял в запрос.
Сделаю, думаю, подтверждение почты. Поставил nodemailer библиотеку ноды чтобы письма слать, написал функционал на бэке чтобы аккаунт можно было подтверждать, разобрался в ангуляре как параметры вытащить из строки запроса, все норм. А функционал для непосредственно отправки письма на локальном сервере нет смысла писать, оно отсюда не уйдет, оставил на последок. Залил всё на продакшн сервер значит, начал разбираться как письмо отправить, оказалось нужна почта. Я уже смутно помнил как делал подтверждение почты на php, тогда мне полагалась с хостингом почта своя и я ее использовал. Теперь оказалось что не полагается, и чтобы отправить письмо надо ставить почтовый сервер на мой дебиан, насколько я понял. Ну что, тоже плюнул пока, код связанный с подтверждением почты выпилил, еще два дня улетели...
Теперь какая-то регистрация на сайте есть короче, надо только пароль и логин придумать, не поменять, не восстановить нельзя. И можно смотреть свою статистику. Есть общая статистика с общим количеством правильных и неправильных ответов по режимам. А есть отдельная по каждому режиму, по каждой попытке.
Также по большей части перенесен фронтенд из дуэлей в ангуляр. Осталось добавить только подсказки и размещение объектов на поле боя. Модуль движения персонажа сильно упрощен, теперь никаких препятствий не обойдет, и траектория не рисуется заранее, а сразу персонаж идет. Бэкенд пока не подключен к этому всему, так что это пока, так сказать, видимость игры. В плане подключения бекэнда это будет тоже та еще история, документации я понятное дело никакой не вел, так что теперь надо заняться реверс-инжинирингом, разобраться какие данные и в каком виде мне вообще нужно передавать беку чтобы все это работало. Ну и настроить базу монго на сервере и в докере. Авторизация-то и интуиция работают с PostgreSQL.
В целом хочется по итогу последних недель сказать, что я вот смотрю на людей и думаю - почему они не учат программирование. Ведь спрос большой, и зарплаты хорошие. Но вот в такие моменты понимаешь почему, в том числе. Довольно фрустрирующие выдались дни, перелопатил кучу информации, не смог решить многие проблемы, отложил их чтобы максимально быстро ввести в работу дуэли, хоть в каком-то виде... Главное кажется ерунда вообще - авторизация на сайте, везде есть. Какого фига для решения этой задачи нужно так много всего изучить и сделать)
Столкнувшись с большим количеством проблем, принимаясь их решать, бросая решения на пол пути, поняв что они не подходят, человек вполне может выдохнуться, разочароваться и пойти искать занятие попроще.
По крайней мере, если не обладает выдающимся упорством и блестящим умом, какими обладаю я.
_________________ Ибо если нечто следует делать, пройдя обучение, то учимся мы, делая это... Аристотель
|