Symfony Авторизация пользователя через БД

gz0t

Новичок
Привет, столкнулся с проблемой и оперативно из хелпа не могу понять, куда копать. Готов платить за консультацию.
Нужно авторизовать посетителя через таблицу БД. (id username password salt)
файл
security.yml
## Security Configuration
security:
encoders:
Fomin\TwittorBundle\Entity\Author:
algorithm: sha512
encode-as-base64: true
iterations: 10

providers:
main:
entity:
class: TwittorBundle:Author
firewalls:
main:
pattern: /.*
form_login:
check_path: /login
login_path: /login
logout: true
security: true
anonymous: true
access_control:
- { path: /me*, role: ROLE_USER }
- { path: /.*, role: IS_AUTHENTICATED_ANONYMOUSLY }

Есть классы:
class Author implements AdvancedUserInterface
class AuthorRepository extends EntityRepository implements UserLoaderInterface
class SecurityController extends Controller

Может чего еще надо ?
 

gz0t

Новичок
А каких то стандартных методов , без установки бандла нет проверить ?
Может можно реализовать не совсем авторизацию, а аутентификацию ?
 

antson

Новичок
Партнер клуба
http://symfony.com/doc/current/security.html
имхо меньше чем написанием двух классов не обойтись
class YouAuthenticator и class YouUserProvider
и что там у тебя за TwittorBundle ? что-то твое ?

в общем вот, что две недели делал в качестве тестового задания.
https://github.com/Muraveiko/LearnSymfony

и работодатель молчит . похоже не впечатлил.
 
Последнее редактирование:

gz0t

Новичок
Да мой бандл.
и не могу пока понять, почему плохо проверить форму логина
$form->isSubmitted() и
заенкодить пароль
$password = $this->get('security.password_encoder')->encodePassword($author, $author->getPlainPassword());
потом сверить с данными из репозитория Author
$real_password = $em->getRepository('TwittorBundle:Author')->getAuthor('dima')->getPassword();
http://symfony.com/doc/current/security/entity_provider.html
вот у них по виду, то что нужно, но чтото лыжи не едут :(
 

antson

Новичок
Партнер клуба
от недели и далее. можно на курсы в Симфони записаться. всегото 1,6кЕвро.

А так это вывих мозга. Быстро можно заюзать готовый компонент,
но для этой сверхизбыточной гибкости, функционал 15 строк размазывается
по куче классов и конфигов. в результате, то что без фреймворка делается за
20 минут кодится пару часов.

Но вот в дальнейшем, если функционал расширяется меняется. крови меньше.
 
Последнее редактирование:

gz0t

Новичок
Всетаки поставил FOSUserbundle 2, но через git, почему то композер убивался все время.
В итоге правка 3 файлов строго по мануалу и вуаля :) юзеры работают
 
Сверху