我使用邮递员添加用户或登录,用户添加成功,但我得到这个错误
传递给Tymon\JWTAuth\JWT::fromUser()的参数1必须是Tymon\JWTAuth\Contracts\JWTSubject的实例,App\User给定的实例,在第54行的C:\Users\Web WorkStation\Desktop\laravelap\jwtlaravel\vendor\Tymon\JWTAuth\src\JWTAuth.php中调用
我在这条直线上找到了这个功能
public function attempt(array $credentials)
{
if (! $this->auth->byCredentials($credentials)) {
return false;
}
return $this->fromUser($this->user());
}
这是我的用户模型:
<?php
namespace App;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password','username','lastname','tel','tel',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
}
and this my register controller
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\User;
use JWTFactory;
use JWTAuth;
use Validator;
use Response;
class APIRegisterController extends Controller
{
//
public function register( Request $request){
$validator = Validator::make($request -> all(),[
'email' => 'required|string|email|max:255|unique:users',
'username' =>'required',
'tel' => 'required',
'name' => 'required',
'lastname' => 'required',
'adress' => 'required',
'password'=> 'required'
]);
if ($validator -> fails()) {
# code...
return response()->json($validator->errors());
}
User::create([
'name' => $request->get('name'),
'email' => $request->get('email'),
'tel' => $request->get('tel'),
'username' => $request->get('username'),
'lastname' => $request->get('lastname'),
'adress' => $request->get('adress'),
'password'=> bcrypt($request->get('password'))
]);
$user = User::first();
$token = JWTAuth::fromUser($user);
return Response::json( compact('token'));
}
}
这要求用户模型
在您的模型中执行此合同:
use Tymon\JWTAuth\Contracts\JWTSubject;
class User extends Model implements JWTSubject {
或者
您必须更新您的用户模型
,以实现Tymon\JWTAuth\Contracts\JWTSubject
界面:
use Tymon\JWTAuth\Contracts\JWTSubject;
class User extends Model implements JWTSubject{
/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
}
在您的用户模型中实施JWTSubject
:
class User extends Authenticatable implements JWTSubject
问题内容: 我正在使用PhantomJS page.evaluate()进行抓取。我的问题是我传递到Webkit页面的代码是沙盒化的,因此无法访问我的主要幻象脚本的变量。这使得很难使抓取代码通用。 如何将参数推入页面? 问题答案: 我遇到了确切的问题。可以使用一些技巧,因为它也可以接受字符串。 有几种方法可以执行此操作,但是我使用了一个称为的包装器,该包装器接受其他参数以传递给必须在Webkit端
问题内容: 是否可以通过以参数作为参数的javascript函数? 例: 问题答案: 使用“关闭”: 这将创建一个匿名的临时函数包装器,该包装器知道该参数并将其传递给实际的回调实现。
问题内容: 我需要一个“接受参数的可运行对象”,尽管我知道这种可运行对象实际上并不存在。 这可能表明我的应用程序设计存在根本缺陷,并且/或者疲倦的大脑中存在智力障碍,因此我希望在这里找到一些建议,以在 不 违反基本OO原则的 情况下 实现以下目标: 任何想法如何完成上述工作? 问题答案: 自从我最初发布此文章至今已经快9年了,说实话,Java从那时起取得了一些进步。我将原始答案留在下面,但无需人们
问题内容: 我们希望在生产部署中缓存崩溃,但不要浪费大量时间来弄清楚这样做的系统。我的想法是将具有当前版本号的paras应用于css和js文件的末尾: 两个问题:这会有效地打破缓存吗?由于参数表明这是动态内容,因此该参数会导致浏览器从不缓存该URL的响应吗? 问题答案: 参数表示查询字符串,因此浏览器将认为这是从到的新路径。因此导致它从文件而不是从缓存加载。如你所愿。 而且,浏览器将假定下次调用时
我能够使用Postman和以下参数调用HTTPendpoint: 但是,我无法通过Android对截击进行同样的操作:这里尝试使用JSONRequest: 这里是尝试StringRequest 当我使用JSONRequest时,会发出调用,但不会传递任何参数;当我使用StringRequest时,会出现以下错误?如何将JSON数据传递给Volley调用? 以下是处理请求的服务器代码
本文向大家介绍PHP 通过参考,包括了PHP 通过参考的使用技巧和注意事项,需要的朋友参考一下 示例 这使您可以通过引用允许您修改原始变量的函数或元素来传递变量。 通过引用传递不仅限于变量,还可以通过引用传递以下内容: 新声明,例如 foo(new SomeClass) 从函数返回的引用 数组 “按引用传递”的常见用法是修改数组中的初始值,而不会涉及创建新数组或乱丢您的命名空间的程度。通过引用传递