Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel Passport-通过用户id在控制器中获取访问令牌?_Laravel_Laravel Passport - Fatal编程技术网

Laravel Passport-通过用户id在控制器中获取访问令牌?

Laravel Passport-通过用户id在控制器中获取访问令牌?,laravel,laravel-passport,Laravel,Laravel Passport,我想知道是否可以通过用户id获取访问令牌。我正在使用nodejs服务器将通知推送到客户端,我需要验证连接的用户-好奇我是否可以通过使用oauth2发送给用户的相同“承载者…”访问令牌来实现这一点。作为解决方案,我正在将令牌从控制器传送到节点服务器,客户端连接到节点服务器后,请求客户端发送承载令牌,并使用jsonwebtoken包从中提取jti,该包用于与从控制器接收到的令牌进行比较 代码如下: 控制器 $userTokenReceiver = $pm->receiver->token

我想知道是否可以通过用户id获取访问令牌。我正在使用nodejs服务器将通知推送到客户端,我需要验证连接的用户-好奇我是否可以通过使用oauth2发送给用户的相同“承载者…”访问令牌来实现这一点。

作为解决方案,我正在将令牌从控制器传送到节点服务器,客户端连接到节点服务器后,请求客户端发送承载令牌,并使用jsonwebtoken包从中提取jti,该包用于与从控制器接收到的令牌进行比较

代码如下:

控制器

$userTokenReceiver = $pm->receiver->tokens()->where('revoked', 'false')
    ->select('id')->get()->sortBy('created_at', true)->first();
if ($userTokenReceiver && $userTokenReceiver->toArray()['id'])
    $dataRedis->receiver_token = $userTokenReceiver->toArray()['id'];
var jwt = require('jsonwebtoken');
...
io.on('connection', function(socket) {
    socket.waitingAuthorize = true;
    // E> authentication_request: after connection asking client to provide token
    socket.emit('authentication_request');

    // O> authorize: waiting for client's response to auth request
    socket.on('authorize', function(token) {
        var decoded = jwt.decode(token);

        if ( !decoded || !decoded.jti ) {
            socket.disconnect(true);
            return;
        }

        socket.waitingAuthorize = false;
        socket.token = decoded.jti; // this is compared to token received from controller
    });
...
节点服务器

$userTokenReceiver = $pm->receiver->tokens()->where('revoked', 'false')
    ->select('id')->get()->sortBy('created_at', true)->first();
if ($userTokenReceiver && $userTokenReceiver->toArray()['id'])
    $dataRedis->receiver_token = $userTokenReceiver->toArray()['id'];
var jwt = require('jsonwebtoken');
...
io.on('connection', function(socket) {
    socket.waitingAuthorize = true;
    // E> authentication_request: after connection asking client to provide token
    socket.emit('authentication_request');

    // O> authorize: waiting for client's response to auth request
    socket.on('authorize', function(token) {
        var decoded = jwt.decode(token);

        if ( !decoded || !decoded.jti ) {
            socket.disconnect(true);
            return;
        }

        socket.waitingAuthorize = false;
        socket.token = decoded.jti; // this is compared to token received from controller
    });
...

作为一种解决方案,我将令牌从控制器传送到节点服务器,在客户端连接到节点服务器后,请求客户端发送承载令牌,并使用jsonwebtoken包从中提取jti,该包用于与从控制器接收到的令牌进行比较

代码如下:

控制器

$userTokenReceiver = $pm->receiver->tokens()->where('revoked', 'false')
    ->select('id')->get()->sortBy('created_at', true)->first();
if ($userTokenReceiver && $userTokenReceiver->toArray()['id'])
    $dataRedis->receiver_token = $userTokenReceiver->toArray()['id'];
var jwt = require('jsonwebtoken');
...
io.on('connection', function(socket) {
    socket.waitingAuthorize = true;
    // E> authentication_request: after connection asking client to provide token
    socket.emit('authentication_request');

    // O> authorize: waiting for client's response to auth request
    socket.on('authorize', function(token) {
        var decoded = jwt.decode(token);

        if ( !decoded || !decoded.jti ) {
            socket.disconnect(true);
            return;
        }

        socket.waitingAuthorize = false;
        socket.token = decoded.jti; // this is compared to token received from controller
    });
...
节点服务器

$userTokenReceiver = $pm->receiver->tokens()->where('revoked', 'false')
    ->select('id')->get()->sortBy('created_at', true)->first();
if ($userTokenReceiver && $userTokenReceiver->toArray()['id'])
    $dataRedis->receiver_token = $userTokenReceiver->toArray()['id'];
var jwt = require('jsonwebtoken');
...
io.on('connection', function(socket) {
    socket.waitingAuthorize = true;
    // E> authentication_request: after connection asking client to provide token
    socket.emit('authentication_request');

    // O> authorize: waiting for client's response to auth request
    socket.on('authorize', function(token) {
        var decoded = jwt.decode(token);

        if ( !decoded || !decoded.jti ) {
            socket.disconnect(true);
            return;
        }

        socket.waitingAuthorize = false;
        socket.token = decoded.jti; // this is compared to token received from controller
    });
...