lumen修改加密方式:
- 新建MD5Hasher,vendor目录不在git版本管理中,故新建目录helpers。
<?php
namespace App\Helpers;
use Illuminate\Contracts\Hashing\Hasher as HasherContract;
use Illuminate\Hashing\AbstractHasher;
class MD5Hasher extends AbstractHasher implements HasherContract
{
public function check($value, $hashedValue, array $options = [])
{
return $this->make($value) === $hashedValue;
}
public function needsRehash($hashedValue, array $options = [])
{
return false;
}
public function make($value, array $options = [])
{
return md5($value);
}
}
- 新建服务容器MD5HashServiceProvider,并绑定。
<?php
namespace App\Providers;
use App\Helpers\MD5Hasher;
use Illuminate\Support\ServiceProvider;
class MD5HashServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$this->app->singleton('hash',function(){
return new MD5Hasher();
});
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
public function provides()
{
return ['hash'];// TODO: Change the autogenerated stub
}
}
3.调用登陆接口,返回token。
tony这个账号在注册时使用MD5加密,登陆时使用attempt()。这里不需要再使用MD5加密传入的密码123456,其实在MD5Hasher中已经处理过。代码如下:
public function login(Request $request)
{
$credentials = [
'username' => $request['username'],
'password' => $request['password']
];
if (! $token = auth('api')->attempt($credentials)) {
return response()->json('登录失败',400 );
}
return response()->json([
'data' => $token,
'message' => '登录成功',
'code' => 200
],200 );
}