artjava

2064 经验值

我看了文档的内容,在laravel根目录上加了.htacess文件,并且加上了内容,$token = JWTAuth::getToken();使用此方法是可以输出浏览器后面带的token值的,但是使用JWTAuth::parseToken()->authenticate()返回的就是false

使用的是windows操作系统

laravel5.3

在wamp集成环境下

由于项目的数据库密码加密方式以前就定好了使用md5,所以不能使用laravel默认的密码加密方式,默认的

$token = JWTAuth::attempt($credentials)

验证没法通过,

在网上搜索和论坛的帖子内得出一个解决方案

$user = User::where('P_z2',$request->get('username'))->first();

if(! ($user->P_z4 === md5($request->get('password')))){
      return response()->json(['error' => 'invalid_credentials'], 401);
}

qq 20161203102847
将获取都得user信息生成token之后

但是在根据token获取用户信息的时候

qq 20161203102853

这里却获取不到,一直使用的是user_not_found

我觉得应该是此种方式生成的token跟普通的不太一样,所以导致使用

JWTAuth::parseToken()->authenticate()

获取不到token对应的数据

'auth' => [

    'basic'=>function ($app){
      return new Dingo\Api\Auth\Provider\Basic($app['auth']);
    },
    'jwt'=>function ($app){
        return new Dingo\Api\Auth\Provider\JWT($app['Tymon\JWTAuth\JWTAuth']);
    }
],

我实验了一下 $app 是IlluminateContractsFoundationApplication 类型
问题一:为什么Application类型 可以直接用$app['auth']数组形式查找得到AuthManager类型?
问题二:$app是如何传入的?