如何从没有Auth的数据库中获取userId :()?

时间:2016-06-05 10:21:00

标签: php laravel

我想从没有Auth ::()的数据库中获取当前的userId,我不想从'/xxx/{id}'

这样的路线获取它

有没有其他方法来获取没有Auth ::()的userId?

例如。 $userId = User::where('id', $id)->pluck('id');

这是我的auth :: controller声明:

public function getLogout(Request $request)
    {

        $redis = \Redis::connection();
        $user = $request->user();

    if ($user) {
         $userID = $user->id;
      }
 //       $userId = User::where('id', $id)->pluck('id'); 
        dd($userID);
 //       $userId=Auth::user()->id;
        $userSessions = $redis->smembers('users:sessions:' . $userId);
        $currentSession = Session::getId();
        foreach ($userSessions as $sessionId) {
             if ($currentSession == $sessionId) {
          continue; 

                }
                 $redis->srem('users:sessions:' . $userId, $sessionId);
                $redis->del('laravel:' . $sessionId);

            }
        Auth::logout();
        return redirect()->route('main');
   }

1 个答案:

答案 0 :(得分:1)

直接来自 docs

  

或者,一旦用户通过身份验证,您就可以访问   通过Illuminate\Http\Request实例进行身份验证的用户。记得,   类型提示类将自动注入您的   控制器方法:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ProfileController extends Controller
{
    /**
     * Update the user's profile.
     *
     * @param  Request  $request
     * @return Response
     */
    public function updateProfile(Request $request)
    {
        if ($request->user()) {
            // $request->user() returns an instance of the authenticated user...
        }
    }
}

所以,获取ID会是这样的:

$user = $request->user();

if ($user) {
    $userID = $user->id;
}