是Jwt令牌是独一无二的

时间:2016-04-14 06:03:46

标签: php laravel jwt laravel-authorization

我正在使用JWT网络令牌系统。我成功地生成了TOKENS。 我在Laravel中创建JWT令牌如下

  

我使用以下技术堆栈

  

示例代码

use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;

class AuthenticateController extends Controller
{
    public function authenticate(Request $request)
    {
        // grab credentials from the request
        $credentials = $request->only('email', 'password');

        try {
            // attempt to verify the credentials and create a token for the user
            if (! $token = JWTAuth::attempt($credentials)) {
                return response()->json(['error' => 'invalid_credentials'], 401);
            }
        } catch (JWTException $e) {
            // something went wrong whilst attempting to encode the token
            return response()->json(['error' => 'could_not_create_token'], 500);
        }

        // all good so return the token
        return response()->json(compact('token'));
    }
}
  

示例输出

我正在

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
  

问题1

生成的令牌是否为UNIQUE?

2 个答案:

答案 0 :(得分:2)

一般来说,JWT实际上正在替换用户名和密码的组合。这意味着,服务器将在第一次用户登录时验证凭据是否正确后返回唯一令牌,而不是继续为受限资源的每个请求发送用户名和密码。之后,每个请求都将包含在完成请求之前将被检查为有效的令牌。

因此,如果两个用户进入并使用两个有效凭据登录,它将从服务器接收两个不同的令牌。

答案 1 :(得分:1)

JWT的独特之处在于,没有两个相同的用户可以为它们生成相同的令牌