md5哈希密码传递给JWTAuthentication凭据变量


md5 hashed password pass to JWTAuthentication credential variable

我正在尝试使用jwtauthentication来创建restful api。下面的代码获取请求输入字段

//Step1:
$credentials = $request->only('email', 'password');

密码需要使用md5进行哈希,因为这是它在db中的存储方式。

//Step2:
$token = JWTAuth::attempt($credentials)

这是给出错误,因为它不能匹配存储在db中的密码。所以我猜如果我可以在第一步加密密码,那么第2步就可以进行身份验证。

如何在$credential变量内传递md5加密变量?

我不确定唯一返回的方法是什么,但我假设它是一个关联数组。你可以使用php内置的md5方法。可能是这样的:

$credentials['password'] = md5($credentials['password']);

如果你可以控制哈希算法,你可以考虑改变为md5以外的东西,比如bcrypt, php也支持从5.5开始的开箱装装的password_hash函数。MD5很容易受到密钥冲突攻击,而bcrypt有一些很好的特性,比如工作因子,可以使暴力破解更加困难。

相关文章:
  • 没有找到相关文章