我正在使用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?
答案 0 :(得分:2)
一般来说,JWT实际上正在替换用户名和密码的组合。这意味着,服务器将在第一次用户登录时验证凭据是否正确后返回唯一令牌,而不是继续为受限资源的每个请求发送用户名和密码。之后,每个请求都将包含在完成请求之前将被检查为有效的令牌。
因此,如果两个用户进入并使用两个有效凭据登录,它将从服务器接收两个不同的令牌。
答案 1 :(得分:1)
JWT的独特之处在于,没有两个相同的用户可以为它们生成相同的令牌