Php 在Laravel/Lumen+;JWT+;用户自定义模型
我花了一天时间试图理解如何在我的API中注入JWT auth,但不幸的是,我没有获得任何成功 我正在使用内腔框架。我认为jwtauth有一个很棒的库。我已经通过composer成功安装了它,它看起来工作正常,但我的项目中没有默认的用户模型,我可以轻松地迁移到默认模式,但我想了解所有这些东西是如何工作的 我不会在这里发布示例代码,为了让问题更简短,就在这里 我对Laravel和Lumen比较陌生,所以我的问题可能已经得到了回答,但我花了几个小时试图查找文档并理解框架中的Auth核心 我有自定义的用户模型Php 在Laravel/Lumen+;JWT+;用户自定义模型,php,laravel,authentication,jwt,lumen,Php,Laravel,Authentication,Jwt,Lumen,我花了一天时间试图理解如何在我的API中注入JWT auth,但不幸的是,我没有获得任何成功 我正在使用内腔框架。我认为jwtauth有一个很棒的库。我已经通过composer成功安装了它,它看起来工作正常,但我的项目中没有默认的用户模型,我可以轻松地迁移到默认模式,但我想了解所有这些东西是如何工作的 我不会在这里发布示例代码,为了让问题更简短,就在这里 我对Laravel和Lumen比较陌生,所以我的问题可能已经得到了回答,但我花了几个小时试图查找文档并理解框架中的Auth核心 我有自定义的用
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
const CREATED_AT = 'createTime';
const UPDATED_AT = 'updateTime';
public $timestamps = true;
protected $table = 'user';
protected $guarded = ['password','login','id','activationEmail'];
protected $hidden = [ 'password' ];
protected function getDateFormat()
{
return 'U';
}
}
好问题,默认情况下,laravel中的users表将是users 可以使用$table属性在模型中设置表名
Auth::trunt(['email'=>$email,'password'=>$password])
或Auth::trunt(['username'=>$username,'password'=>$password,'active'=>1],$memory)
。是,已检查密码,您也可以使用Hash::check()手动检查密码$table
属性定义为$table='Books'代码>
public$timestamps=false代码>
祝你好运
- 登录-验证
- 从route->使用post方法调用控制器
- 在auth controller中,验证请求,如,
- $this->validate$请求[
'email'=>'必填项| email | max:255','password'=>'必填项',
]);李>
- 如果成功验证了这一点,
- JWTAuth::尝试($credentials);//凭据应采用类似数组的数组格式('email'=>'dbfieldname','password')
- 如果无效,则抛出如下错误:,
- response()->json(['error'=>'invalid_credentials','message'=>'invalid credentials'],401)
- 如果成功,生成令牌状,
- response()->json(compact('token')李>
在laravel中实现JWT非常累人和混乱,您总是会丢失包和参数
试试这款laravel/lumen套装:
下面是一个简单的示例项目,可以演示jwt auth的整个生命周期。这个很容易调试。
在dingo api演示项目中,您可以在以下位置找到问题的大部分答案
/config/jwt.php
/config/api.php
/config/auth.php
谢谢你的回答,但我知道什么是模型、控制器和面向对象的总体相对较好。我想知道如何为Auth facade创建自定义模型。这个类应该实现什么样的接口等等,以便author能够使用它,比如将模型作为数据库的表示。我想你的意思是把一个模型看作是一张桌子的代表。。