我正在尝试使用JWTAutnetication来创建restful api。 以下代码获取请求输入字段
//Step1:
$credentials = $request->only('email', 'password');
需要使用md5对密码进行哈希处理,因为这是存储在db中的方式。
//Step2:
$token = JWTAuth::attempt($credentials)
这是错误,因为它与db中存储的密码不匹配。所以我猜我是否可以在第1步加密密码,第2步就能验证。
如何在$ credential变量中传递md5加密变量?
答案 0 :(得分:0)
我不确定返回的唯一方法是什么,但我假设它是一个关联数组。你可以使用php内置的md5方法。可能类似于:
$credentials['password'] = md5($credentials['password']);
如果您可以控制散列算法,但是您可以考虑更改为md5以外的其他内容,例如bcrypt,php也支持从5.5开始使用password_hash
函数开箱即用。 MD5很容易受到关键碰撞攻击等攻击,而bcrypt有一些很好的功能,比如工作因素可以让暴力破解更加困难。