TokenManagerInterface::create()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
1
<?php
2
3
namespace Yokai\SecurityTokenBundle\Manager;
4
5
use DateTime;
6
use Yokai\SecurityTokenBundle\Entity\Token;
7
use Yokai\SecurityTokenBundle\Exception\TokenExpiredException;
8
use Yokai\SecurityTokenBundle\Exception\TokenNotFoundException;
9
use Yokai\SecurityTokenBundle\Exception\TokenConsumedException;
10
11
/**
12
 * A token manager is the entry point to deal with tokens.
13
 *
14
 * @author Yann Eugoné <[email protected]>
15
 */
16
interface TokenManagerInterface
17
{
18
    /**
19
     * Get a token instance.
20
     *
21
     * @param string $purpose The token purpose
22
     * @param string $value   The token value
23
     *
24
     * @return Token
25
     *
26
     * @throws TokenNotFoundException if the token cannot be found
27
     * @throws TokenExpiredException if the token is expired
28
     * @throws TokenConsumedException if the token is consumed
29
     */
30
    public function get($purpose, $value);
31
32
    /**
33
     * Create a token.
34
     *
35
     * @param string $purpose The token purpose
36
     * @param mixed  $user    The user to associate to the token
37
     * @param array  $payload Some additional payload for the token
38
     *
39
     * @return Token
40
     */
41
    public function create($purpose, $user, array $payload = []);
42
43
    /**
44
     * @param Token         $token
45
     * @param DateTime|null $at
46
     *
47
     * @deprecated since version 2.2 and will be removed in 3.0
48
     */
49
    public function setUsed(Token $token, DateTime $at = null);
0 ignored issues
show
Documentation introduced by
For interfaces and abstract methods it is generally a good practice to add a @return annotation even if it is just @return void or @return null, so that implementors know what to do in the overridden method.

For interface and abstract methods, it is impossible to infer the return type from the immediate code. In these cases, it is generally advisible to explicitly annotate these methods with a @return doc comment to communicate to implementors of these methods what they are expected to return.

Loading history...
50
51
    /**
52
     * Consume a token.
53
     *
54
     * @param Token         $token The token to consume
55
     * @param DateTime|null $at    The date/time at which the token was consumed (defaults to now)
56
     */
57
    public function consume(Token $token, DateTime $at = null);
0 ignored issues
show
Documentation introduced by
For interfaces and abstract methods it is generally a good practice to add a @return annotation even if it is just @return void or @return null, so that implementors know what to do in the overridden method.

For interface and abstract methods, it is impossible to infer the return type from the immediate code. In these cases, it is generally advisible to explicitly annotate these methods with a @return doc comment to communicate to implementors of these methods what they are expected to return.

Loading history...
58
59
    /**
60
     * Get the user associated to a token.
61
     *
62
     * @param Token $token The token
63
     *
64
     * @return mixed
65
     */
66
    public function getUser(Token $token);
67
}
68