如何使用md5的方式进行jwt的验证,可以获取token,但是通过token获取用户信息user not found

使用的是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对应的数据

JellyBool

使用 Apache 的时候主要传 token 的方式和进行简单的配置 .htaccess:

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

参考这里:https://github.com/tymondesigns/jwt-auth/wiki/Authentication

artjava

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

JellyBool 回复 artjava

你是怎么访问

JWTAuth::parseToken()->authenticate()

这个代码的?是 query 的方式传 token ,还是 header 的方式传?怎么触发的这个代码

artjava 回复 JellyBool

解决了