看的站内的这篇连接Laravel5.5 安装 JWT
有两个问题想请教一下:
文章一开始讲的配置Model和Controller
这一节里面为什么把User模型直接放到app目录下呢?不应该是Models目录下吗?
而且User模型不都是继承Model这样写class User extends Model
吗
他这里为什么这样class User extends Authenticatable implements JWTSubject
写呢?
这样写就不能继承Model了啊
第二个问题AuthController
里面的login方法的$token怎么生成的呢?这个$token就是最终返回给前端的TOKEN吧 但是我看这个$token没写怎么得到的啊?我测试是一直提示Undefined variable: token
大家能给解释一下吗?谢谢
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
class AuthController extends Controller
{
public function __construct()
{
$this->middleware('auth:api', ['except' => ['login']]);
}
public function login()
{
$credentials = request(['email', 'password']);
if (! $token = auth()->attempt($credentials)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return $this->respondWithToken($token);
}
第一个问题:User模型放在哪个目录下没有统一的标准,根据你个人习惯来定,而且laravel自带也没有Models文件夹。
第二个问题:所继承的Authenticatable,是
use Illuminate\Foundation\Auth\User as Authenticatable
这段代码,进入Illuminate\Foundation\Auth\User
这个类,我们会看到class User extends Model
这段代码,所以 User模型还是继承了Model哦第三个问题 是JWT底层实现的,这个我也不是很清楚,不知道有没有大牛来补充下