12

Laravel のパスポート パッケージを使用して、残りの API にトークン ベースの認証を提供しています。現在、個人用アクセス トークンの概念を使用してアクセス トークンを生成しています。

単一ユーザーのアクセス トークンを生成するために、以下のコードを使用して「android」という名前のトークンを生成しています。

    $user = User::create([
                'name' => $data['name'],
                'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);

    // Here the access token will be stored in $token variable.
    $token = $user->createToken('android')->accessToken;

    // Now the $token value would be something like
   //eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImMyNjI3YzU0YjFhNWIxZTFlMTdkODhmZTk1NzhjNzAzY2QyMTU0MzhlOD...

後で、生成されたトークンを再度取得する際に問題に直面している管理ダッシュボードに個人用アクセス トークンを表示したいと考えています。以下のコードを試しましたが、アクセストークンを取得できませんでした。

$user = User::find(1)
dd($user->tokens())

また、passport vue 要素を使用してみましたが、実際のトークンではなく、アクセス トークン名のみが表示されます。

<passport-personal-access-tokens></passport-personal-access-tokens>

これを解決するのを手伝ってください。

ありがとうございました

4

7 に答える 7

3

ユーザーを作成する前または同時にトークンを生成し、データベースに保存する必要があると思います。

列を追加します。

$table->string('token', 60)->unique();

トークンを保存します。

$token = $user->createToken('android')->accessToken;

$user = User::create([
    'name' => $data['name'],
    'email' => $data['email'],
    'password' => bcrypt($data['password']),
    'token' => $token,
]);

その後、次のように利用できます。

$user->token;
于 2017-01-12T15:27:21.623 に答える
2

次のコードを試すことができます。

    $user->tokens->load('client')->filter(function ($token) {
        return ! $token->client->firstParty() && ! $token->revoked;
    })->values();
于 2017-01-15T00:44:16.140 に答える