php - Laravel Passport 不生成 token

标签 php laravel laravel-5 oauth-2.0 laravel-passport

我使用 Laravel 作为我的 ionic 应用程序的后端,并使用 Laravel Passport 进行身份验证。当我尝试调用 createToken() 时的 Auth它显示,Call to undefined method
登录.ts :

login(event){
        let dataJSON;
        let formData = new FormData();
        formData.append('email',event.target[0].value)
        formData.append('password',event.target[1].value)
        this.http.post(ENV.BASE_URL+'/auth', formData)
        .subscribe((data) => {
            console.log(data);

            dataJSON = data;
        }, (error) => {
            console.log("Error!", error);
        });
        return false;
    }

UserController.php :
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\User;

class UserController extends Controller{
    public function auth(Request $request){
        $params = $request->only('email', 'password');
        $username = $params['email'];
        $password = $params['password'];
        if(\Auth::attempt(['email' => $username, 'password' => $password])){
            $token = \Auth::user()->createToken('Token'); //Throws Error here
            return response()->json(['token'=>$token]);
        }
        return response()->json(['error' => 'Invalid username or Password']);
    }
}

错误日志 :
当我使用 Postman 进行测试时,它会引发以下错误
Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined method Illuminate\Auth\GenericUser::createToken() in file D:\PsResources\DroidWorkspace\ZiPay\ZipServer\app\Http\Controllers\UserController.php on line 16 Stack trace: 1. Symfony\Component\Debug\Exception\FatalThrowableError->() D:\PsResources\DroidWorkspace\ZiPay\ZipServer\app\Http\Controllers\UserController.php:16
auth.php
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
        'table' => 'users',
    ],
    'users' => [
        'driver' => 'database',
        'table' => 'users',
     ],
],

用户.php
namespace App;
use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable{
    use HasApiTokens, Notifiable;
    ....
}

最佳答案

将这些添加到您的用户模型中

use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable, HasApiTokens

关于php - Laravel Passport 不生成 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52902913/

相关文章:

Laravel 关系 - 在 View 中访问相关值

php - 如何在 Laravel 中为单个 session 变量设置计时器?

php - Laravel 5 如何使用链接检索相关表数据

php - Laravel 日期不允许我使用 diffForHumans

MySQl:如何对 ('year' )具有日期格式的列进行分组,忽略月份和日期

php - 无法将 WordPress 备份从实时安装到本地

php - 无法使用LIKE使用php从mysql中提取数据

php - 查看php session 变量

Laravel 4 - 迁移 'Blueprint' 是什么意思?

php - 扩展 attach() 方法?