首页 > 解决方案 > Laravel Passport - 无法获得令牌字符串作为响应?

问题描述

我在使用护照 laravel 注册时得到如下结果

"success": {
        "token": {
            "name": "MyApp",
            "abilities": [
                "*"
            ],
            "tokenable_id": 6,
            "tokenable_type": "App\\Models\\User",
            "updated_at": "2021-08-28T14:41:33.000000Z",
            "created_at": "2021-08-28T14:41:33.000000Z",
            "id": 5
        },
        "name": "Test"

我想得到令牌字符串作为响应……现在该做什么。

在我的 api 控制器功能下方:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
class ApiController extends Controller
{
    public function register(Request $request) 
    { 
        $successStatus = 200;
        $validator = \Validator::make($request->all(), [ 
            'name' => 'required', 
            'email' => 'required|email', 
            'password' => 'required', 
        ]);
        if ($validator->fails()) { 
                    return response()->json(['error'=>$validator->errors()], 401);            
                }
        $input = $request->all(); 
        $input['password'] = \Hash::make($input['password']); 
        $user = User::create($input); 
        $success['token'] =  $user->createToken('MyApp')->accessToken; 
        $success['name'] =  $user->name;
        return response()->json(['success'=>$success],200); 
    }
}

标签: phplaravel-passportlaravel-api

解决方案


php artisan config:cache  &&
php artisan passport:install &&
php artisan passport:client --personal

推荐阅读