app\config 目录下 auth.php 配置
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',// 默认token
'provider' => 'users',
],
],
// 这里默认关联模型(eloquent) App\User
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Model\User::class,
'table' => 'data_users',
],
'users' => [
'driver' => 'database',
'table' => 'users',
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
],
];
JWT.php文件配置内容:
<?php
return [
'secret' => env('JWT_SECRET', 'ZLTVDUQ6lAEayTvgIUTIcRMd833zmNb4'),
'ttl' => 60,
'refresh_ttl' => 20160,
'algo' => 'HS256',
'user' => 'App\Model\User',
'identifier' => 'id',
'required_claims' => ['iss', 'iat', 'exp', 'nbf', 'sub', 'jti'],
'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED', true),
'providers' => [
'user' => 'Tymon\JWTAuth\Providers\User\EloquentUserAdapter',
'jwt' => 'Tymon\JWTAuth\Providers\JWT\NamshiAdapter',
'auth' => 'Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter',
'storage' => 'Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter',
],
];
app\model 目录下的user.php
<?php
namespace App\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
// JWT 中有指定验证的字段,使用 Notifiable 来修改这些指定
use Notifiable;
/**
* 白名单 $fillable 属性指定了哪些字段支持批量赋值
* @var array
*/
protected $fillable = ['uid', 'username', 'tel', 'password', 'pic', 'status', 'addtime'];
/**
* 模型所使用的数据库表
* @var string
*/
protected $table = 'data_users';
/**
* 自定义主键
*/
protected $primaryKey = 'uid';
/**
* 关闭 递增
*/
public $incrementing = false;
/**
* 关闭 创建时间 与 更新时间的自动维护
*/
public $timestamps = false;
/**
* 转换成数组或 JSON 时隐藏属性
* 查询用户的时候,不暴露密码
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* jwt 默认密码字段 password
* 修改密码字段
*/
public function getAuthPassword()
{
return $this->password;
}
/**
* 获取用户的唯一标识符
* jwt 需要实现的方法
*/
// public function getJWTIdentifier()
// {
// return $this->getKey();// 模型的方法
// }
// jwt 需要实现的方法
// public function getJWTCustomClaims()
// {
// return [];
// }
/**
* 用户-订单一对多关联
*/
public function hasUserOrder()
{
return $this->hasMany('App\Model\Order', 'uid', 'uid');
}
/**
* 用户-购物车一对多关联
*/
public function hasUserCart()
{
return $this->hasMany('App\Model\Cart', 'uid', 'uid');
}
}
目前在我的 store 层,无法获取到数据,用户查询返回为空(用户真实存在)public static function apiGetUser($param)
public static function apiGetUser($param)
{
// return Auth::where($param)->first();
return \DB::table('data_users')
->where($param)->first();
}
两种方法,均无法从 data_users 表中读取到数据,怀疑 user.php 的接口问题。新建一个 Auth.php 模型
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
class Auth extends Model
{
/**
* 白名单 $fillable 属性指定了哪些字段支持批量赋值
* @var array
*/
protected $fillable = ['uid', 'username', 'tel', 'password', 'pic', 'status', 'addtime'];
/**
* 模型所使用的数据库表
* @var string
*/
protected $table = 'data_users';
/**
* 自定义主键
*/
protected $primaryKey = 'uid';
/**
* 关闭 递增
*/
public $incrementing = false;
/**
* 关闭 创建时间 与 更新时间的自动维护
*/
public $timestamps = false;
/**
* 转换成数组或 JSON 时隐藏属性
* 查询用户的时候,不暴露密码
* @var array
*/
protected $hidden = ['password', 'remember_token'];
/**
* 用户-订单一对多关联
*/
public function hasUserOrder()
{
return $this->hasMany('App\Model\Order', 'uid', 'uid');
}
/**
* 用户-购物车一对多关联
*/
public function hasUserCart()
{
return $this->hasMany('App\Model\Cart', 'uid', 'uid');
}
}
但问题依然是没有从数据库获取到数据,再这里向各位有相同经历或是了解这问题的同学请教,谢谢!