Здравствуйте. Понадобилось создать на сайте wordpress систему с авторизацией пользователей. Использовать функционал самого wordpress для работы с пользователями по ряду причин не выйдет.
Собственно, на сайте должна быть страница доступ которой может быть получен только после кастомной авторизации.
Начал читать как это можно сделать и утоп. Если я правильно понял, то методика должна быть примерно такой:
пользователь попадает на страницу ajax-формы авторизации ->
вводит свои логин/пароль ->
они отправляются на проверку на сервер ->
если все ок, то ему вешаются куки авторизации и он вместе с ними перенаправляется на нужную страницу ->
при заходе на неё сервер проверяет куки пользователя ->
если куки верны, то страница отображается и пользователь может работать, если нет - перенаправялет на страницу с формой авторизации.
Но в то же время, как я понял, куки можно спокойно менять на пользовательской стороне. Тогда как обеспечить то, что левый пользователь не зайдет с похищенными/подобранными как-то куками?
Или все не так, как я себе представляю?
Второй вопрос - wordpress позволяет делать set_cookie только до того, как на странице отображено хоть что-нибудь. Т.е. я не могу топравить пользователю куки после того, как он введет данные? Тогда как?
Боюсь, что база данных пользователей для этой отдельной формы регистрации будет вообще отделена от общей БД сайта. Поэтому сомневаюсь, что готовые плагины тут подойдут. Да и, мне кажется, тащить сторонние плагины для одной формы регистрации, слегка перебор.
Ну и не интересно так, в конце-концов xD
Хочется разобраться что к чему на будущее.
FairfullFair, база используется та же самая с той же самой таблицей юзеров. Готовое решение в данном случае это вовсе не перебор. Profile Builder, во-первых, безопасней, во-вторых, будет быстрее работать чем ваш самописный код, если у вас опыта в данном вопросе ноль, в третьих, обновляться в случае обновления движка, в четвёртых, предлагает более гибкий функционал, в пятых, вы всегда сможете его заменить на что-то другое, если найдёте что-то лучше.
Froggyweb, почему? Есть система, данные которой по логике вещей должны лежать отдельно от общей БД сайта. На сайте только интерфейс для неё. Соответственно, вордпресс со своей БД - в одном месте, БД этой микро-системы - в другом.
FairfullFair, отдельная база для юзеров? Почему не отдельную базу для каждой страницы? Или, скажем, отдельную базу для каждого юзера?
1 сайт = 1 база данных. Если вы переживаете на счёт быстродействия или безопасности, то вам следует заинтересоваться настройкой сервера базы данных (MySQL, MariaDB или другой, который вы используете вместе с WordPress)
Dubrovin, там не только юзеры, но и данные системы. При этом, так уж получается, что система сама по себе с сайтом пересекается только, как я уже сказал, на уровне интерфейса.
FairfullFair, у WordPress своя собственная система авторизации пользователей, если вы сделаете другую систему авторизации, то WordPress попросту не сможет с ней работать.
Dubrovin, если абстрагироваться от wordpress? Все еще имеется сервер и возможность написать php, js-код. Неужели для создания формы авторизации посредством этих двух языков необходимо задействовать сторонние решения?
FairfullFair, у вас вопрос конкретно был по WordPress, если просто создание формы, то в интернете полно роликов как это сделать, например, webformyself.com/sozdanie-sistemy-avtorizacii/
Froggyweb, спасибо. По Вашей ссылке хорошее объяснение. Ну, во всяком случае, из него можно понять куда читать дальше т.к. сессию в WP еще стартануть нужно в правильном месте, как я понял. Ну да ладно, с этим разобрался. Не знаю почему не смог найти чего-то подобного. Отчасти, наверно, как раз, из-за того, что выдача гугла забита готовыми плагинами для этого, но не объяснениями как сделать самому.
А на счет базы - посмотрим как оно будет.