Slide 1

Slide 1 text

@kunicmarko20 Symfony Guard You don’t need FOSUserBundle

Slide 2

Slide 2 text

@kunicmarko20 FOSUserBundle Pros ● Login Page ● Reset Password ● Last Login Cons ● Login Page ● Reset Password ● Username field ● Overwrite everything

Slide 3

Slide 3 text

@kunicmarko20 SonataUserBundle Pros ● User Admin Class ● Admin Login Page ● Role FormType Cons ● Wrapper around FOSUserBundle ● Adds 22 fields to your User Entity ● User Profile Menu and Dashboard page

Slide 4

Slide 4 text

@kunicmarko20

Slide 5

Slide 5 text

@kunicmarko20

Slide 6

Slide 6 text

@kunicmarko20 In the rest of the talk, my focus will be on replacing SonataUserBundle and implementing Symfony Guard because we are using SonataAdminBundle and a lot of people just go with SonataUserBundle as it is easier. While removing SonataUserBundle we will basically be removing FOSUserBundle as well.

Slide 7

Slide 7 text

@kunicmarko20

Slide 8

Slide 8 text

@kunicmarko20 The “new” Symfony Authentication component ● Since Symfony 2.8 (2015) ● Easy to implement ● Customize success/failure behavior ● Customize error messages ● Customize how you load user

Slide 9

Slide 9 text

@kunicmarko20 What do we need? ● User Entity ● Custom User Provider (optional) ● Login Form Type ● Controller ● Guard Authenticator

Slide 10

Slide 10 text

@kunicmarko20 User Entity

Slide 11

Slide 11 text

@kunicmarko20

Slide 12

Slide 12 text

@kunicmarko20

Slide 13

Slide 13 text

@kunicmarko20

Slide 14

Slide 14 text

@kunicmarko20 User Provider

Slide 15

Slide 15 text

@kunicmarko20

Slide 16

Slide 16 text

@kunicmarko20

Slide 17

Slide 17 text

@kunicmarko20

Slide 18

Slide 18 text

@kunicmarko20 Login Form Type

Slide 19

Slide 19 text

@kunicmarko20

Slide 20

Slide 20 text

@kunicmarko20 Controller

Slide 21

Slide 21 text

@kunicmarko20

Slide 22

Slide 22 text

@kunicmarko20 Authenticator

Slide 23

Slide 23 text

@kunicmarko20

Slide 24

Slide 24 text

@kunicmarko20

Slide 25

Slide 25 text

@kunicmarko20

Slide 26

Slide 26 text

@kunicmarko20

Slide 27

Slide 27 text

@kunicmarko20

Slide 28

Slide 28 text

@kunicmarko20

Slide 29

Slide 29 text

@kunicmarko20

Slide 30

Slide 30 text

@kunicmarko20 HashPasswordListener

Slide 31

Slide 31 text

@kunicmarko20

Slide 32

Slide 32 text

@kunicmarko20

Slide 33

Slide 33 text

@kunicmarko20 Last Login

Slide 34

Slide 34 text

@kunicmarko20

Slide 35

Slide 35 text

@kunicmarko20 The end https://github.com/kunicmarko20/guard-talk-example