Autenticación
Versión 3 (Guillermo Zdanowicz, 05/10/2015 18:46)
1 | 1 | Guillermo Zdanowicz | h1. Autenticación |
---|---|---|---|
2 | 1 | Guillermo Zdanowicz | |
3 | 2 | Guillermo Zdanowicz | Referencia: http://symfony.com/doc/current/cookbook/security/entity_provider.html |
4 | 2 | Guillermo Zdanowicz | |
5 | 1 | Guillermo Zdanowicz | Creo el archivo |
6 | 1 | Guillermo Zdanowicz | |
7 | 1 | Guillermo Zdanowicz | src/AppBundle/Entity/User.php |
8 | 1 | Guillermo Zdanowicz | |
9 | 1 | Guillermo Zdanowicz | con el codigo siguiente |
10 | 1 | Guillermo Zdanowicz | |
11 | 1 | Guillermo Zdanowicz | <pre> |
12 | 1 | Guillermo Zdanowicz | <?php |
13 | 1 | Guillermo Zdanowicz | // src/AppBundle/Entity/User.php |
14 | 1 | Guillermo Zdanowicz | namespace AppBundle\Entity; |
15 | 1 | Guillermo Zdanowicz | |
16 | 1 | Guillermo Zdanowicz | use Doctrine\ORM\Mapping as ORM; |
17 | 1 | Guillermo Zdanowicz | use Symfony\Component\Security\Core\User\UserInterface; |
18 | 1 | Guillermo Zdanowicz | |
19 | 1 | Guillermo Zdanowicz | /** |
20 | 1 | Guillermo Zdanowicz | * @ORM\Table(name="app_users") |
21 | 1 | Guillermo Zdanowicz | * @ORM\Entity(repositoryClass="AppBundle\Entity\UserRepository") |
22 | 1 | Guillermo Zdanowicz | */ |
23 | 1 | Guillermo Zdanowicz | class User implements UserInterface, \Serializable |
24 | 1 | Guillermo Zdanowicz | { |
25 | 1 | Guillermo Zdanowicz | /** |
26 | 1 | Guillermo Zdanowicz | * @ORM\Column(type="integer") |
27 | 1 | Guillermo Zdanowicz | * @ORM\Id |
28 | 1 | Guillermo Zdanowicz | * @ORM\GeneratedValue(strategy="AUTO") |
29 | 1 | Guillermo Zdanowicz | */ |
30 | 1 | Guillermo Zdanowicz | private $id; |
31 | 1 | Guillermo Zdanowicz | |
32 | 1 | Guillermo Zdanowicz | /** |
33 | 1 | Guillermo Zdanowicz | * @ORM\Column(type="string", length=25, unique=true) |
34 | 1 | Guillermo Zdanowicz | */ |
35 | 1 | Guillermo Zdanowicz | private $username; |
36 | 1 | Guillermo Zdanowicz | |
37 | 1 | Guillermo Zdanowicz | /** |
38 | 1 | Guillermo Zdanowicz | * @ORM\Column(type="string", length=64) |
39 | 1 | Guillermo Zdanowicz | */ |
40 | 1 | Guillermo Zdanowicz | private $password; |
41 | 1 | Guillermo Zdanowicz | |
42 | 1 | Guillermo Zdanowicz | /** |
43 | 1 | Guillermo Zdanowicz | * @ORM\Column(type="string", length=60, unique=true) |
44 | 1 | Guillermo Zdanowicz | */ |
45 | 1 | Guillermo Zdanowicz | private $email; |
46 | 1 | Guillermo Zdanowicz | |
47 | 1 | Guillermo Zdanowicz | /** |
48 | 1 | Guillermo Zdanowicz | * @ORM\Column(name="is_active", type="boolean") |
49 | 1 | Guillermo Zdanowicz | */ |
50 | 1 | Guillermo Zdanowicz | private $isActive; |
51 | 1 | Guillermo Zdanowicz | |
52 | 1 | Guillermo Zdanowicz | public function __construct() |
53 | 1 | Guillermo Zdanowicz | { |
54 | 1 | Guillermo Zdanowicz | $this->isActive = true; |
55 | 1 | Guillermo Zdanowicz | // may not be needed, see section on salt below |
56 | 1 | Guillermo Zdanowicz | // $this->salt = md5(uniqid(null, true)); |
57 | 1 | Guillermo Zdanowicz | } |
58 | 1 | Guillermo Zdanowicz | |
59 | 1 | Guillermo Zdanowicz | public function getUsername() |
60 | 1 | Guillermo Zdanowicz | { |
61 | 1 | Guillermo Zdanowicz | return $this->username; |
62 | 1 | Guillermo Zdanowicz | } |
63 | 1 | Guillermo Zdanowicz | |
64 | 1 | Guillermo Zdanowicz | public function getSalt() |
65 | 1 | Guillermo Zdanowicz | { |
66 | 1 | Guillermo Zdanowicz | // you *may* need a real salt depending on your encoder |
67 | 1 | Guillermo Zdanowicz | // see section on salt below |
68 | 1 | Guillermo Zdanowicz | return null; |
69 | 1 | Guillermo Zdanowicz | } |
70 | 1 | Guillermo Zdanowicz | |
71 | 1 | Guillermo Zdanowicz | public function getPassword() |
72 | 1 | Guillermo Zdanowicz | { |
73 | 1 | Guillermo Zdanowicz | return $this->password; |
74 | 1 | Guillermo Zdanowicz | } |
75 | 1 | Guillermo Zdanowicz | |
76 | 1 | Guillermo Zdanowicz | public function getRoles() |
77 | 1 | Guillermo Zdanowicz | { |
78 | 1 | Guillermo Zdanowicz | return array('ROLE_USER'); |
79 | 1 | Guillermo Zdanowicz | } |
80 | 1 | Guillermo Zdanowicz | |
81 | 1 | Guillermo Zdanowicz | public function eraseCredentials() |
82 | 1 | Guillermo Zdanowicz | { |
83 | 1 | Guillermo Zdanowicz | } |
84 | 1 | Guillermo Zdanowicz | |
85 | 1 | Guillermo Zdanowicz | /** @see \Serializable::serialize() */ |
86 | 1 | Guillermo Zdanowicz | public function serialize() |
87 | 1 | Guillermo Zdanowicz | { |
88 | 1 | Guillermo Zdanowicz | return serialize(array( |
89 | 1 | Guillermo Zdanowicz | $this->id, |
90 | 1 | Guillermo Zdanowicz | $this->username, |
91 | 1 | Guillermo Zdanowicz | $this->password, |
92 | 1 | Guillermo Zdanowicz | // see section on salt below |
93 | 1 | Guillermo Zdanowicz | // $this->salt, |
94 | 1 | Guillermo Zdanowicz | )); |
95 | 1 | Guillermo Zdanowicz | } |
96 | 1 | Guillermo Zdanowicz | |
97 | 1 | Guillermo Zdanowicz | /** @see \Serializable::unserialize() */ |
98 | 1 | Guillermo Zdanowicz | public function unserialize($serialized) |
99 | 1 | Guillermo Zdanowicz | { |
100 | 1 | Guillermo Zdanowicz | list ( |
101 | 1 | Guillermo Zdanowicz | $this->id, |
102 | 1 | Guillermo Zdanowicz | $this->username, |
103 | 1 | Guillermo Zdanowicz | $this->password, |
104 | 1 | Guillermo Zdanowicz | // see section on salt below |
105 | 1 | Guillermo Zdanowicz | // $this->salt |
106 | 1 | Guillermo Zdanowicz | ) = unserialize($serialized); |
107 | 1 | Guillermo Zdanowicz | } |
108 | 1 | Guillermo Zdanowicz | } |
109 | 1 | Guillermo Zdanowicz | </pre> |
110 | 1 | Guillermo Zdanowicz | |
111 | 1 | Guillermo Zdanowicz | Luego ejecuto la sentencia |
112 | 1 | Guillermo Zdanowicz | |
113 | 1 | Guillermo Zdanowicz | php app/console doctrine:generate:entities AppBundle/Entity/User |
114 | 1 | Guillermo Zdanowicz | |
115 | 1 | Guillermo Zdanowicz | Traslado el a la base de datos |
116 | 1 | Guillermo Zdanowicz | |
117 | 1 | Guillermo Zdanowicz | php app/console doctrine:schema:update --force |
118 | 2 | Guillermo Zdanowicz | |
119 | 2 | Guillermo Zdanowicz | INSERT INTO `jobeet`.`app_users` (`id`, `username`, `password`, `email`, `is_active`) VALUES (NULL, 'admin', MD5('admin'), 'ingguillermoz@gmail.com', '1'); |
120 | 2 | Guillermo Zdanowicz | |
121 | 2 | Guillermo Zdanowicz | <pre> |
122 | 2 | Guillermo Zdanowicz | php app/console security:encode-password admin 'AppBundle\Entity\User' |
123 | 2 | Guillermo Zdanowicz | |
124 | 2 | Guillermo Zdanowicz | Symfony Password Encoder Utility |
125 | 2 | Guillermo Zdanowicz | ================================ |
126 | 2 | Guillermo Zdanowicz | |
127 | 2 | Guillermo Zdanowicz | ------------------ --------------------------------------------------------------- |
128 | 2 | Guillermo Zdanowicz | Key Value |
129 | 2 | Guillermo Zdanowicz | ------------------ --------------------------------------------------------------- |
130 | 2 | Guillermo Zdanowicz | Encoder used Symfony\Component\Security\Core\Encoder\BCryptPasswordEncoder |
131 | 2 | Guillermo Zdanowicz | Encoded password $2y$13$uXR5DGA7EMAg3QLaeaIYP.3a4dVdOvgDLCEqnNQwfUgz72uBMB1kW |
132 | 2 | Guillermo Zdanowicz | ------------------ --------------------------------------------------------------- |
133 | 2 | Guillermo Zdanowicz | Se tomo el valor generado y se almaceno en la password del usuario y la tomo |
134 | 2 | Guillermo Zdanowicz | |
135 | 3 | Guillermo Zdanowicz | $2y$13$uXR5DGA7EMAg3QLaeaIYP.3a4dVdOvgDLCEqnNQwfUgz72uBMB1kW -> este codigo lo llevo a la base de datos |
136 | 2 | Guillermo Zdanowicz | |
137 | 2 | Guillermo Zdanowicz | ! [NOTE] Bcrypt encoder used: the encoder generated its own built-in salt. |
138 | 2 | Guillermo Zdanowicz | |
139 | 2 | Guillermo Zdanowicz | |
140 | 2 | Guillermo Zdanowicz | [OK] Password encoding succeeded |
141 | 1 | Guillermo Zdanowicz | |
142 | 3 | Guillermo Zdanowicz | </pre> |
143 | 3 | Guillermo Zdanowicz | |
144 | 3 | Guillermo Zdanowicz | |
145 | 3 | Guillermo Zdanowicz | <pre> |
146 | 3 | Guillermo Zdanowicz | UPDATE `jobeet`.`app_users` SET `password` = '$2y$13$uXR5DGA7EMAg3QLaeaIYP.3a4dVdOvgDLCEqnNQwfUgz72uBMB1kW' WHERE `app_users`.`id` =1; |
147 | 3 | Guillermo Zdanowicz | |
148 | 2 | Guillermo Zdanowicz | </pre> |