laravel、lumen修改JWT加密方式为MD5

原文链接

lumen修改加密方式:

  1. 新建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);
    }
}
  1. 新建服务容器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 );
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值