我可以从会话中获取当前用户ID到api控制器中吗

时间:2019-01-28 12:21:21

标签: laravel

我想从家庭控制器到api控制器获取用户ID,我在会话中存储用户ID并尝试在api控制器中获取ID,但它总是说非对象如何获取用户ID,请帮帮我。我的代码。

HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Auth;
use Session;
class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
       $userdata = Auth::user();
      // return $userdata;
       Session::put('login_user_id',Auth::user()->id);

       $uid = Session::get('login_user_id');
           dd($uid);
           exit;
        return view('home');
    }
}

我想在BlogController.php中获取用户ID

BlogController.php

  public function index()
    {
       $userdata = Auth::user();
      // return $userdata;
       Session::put('login_user_id',Auth::user()->id);

       $uid = Session::get('login_user_id');
           dd($uid);
           exit;
        return view('home');
    }

在HomeController中,我获得了用户ID,但在BlogController中却没有获得。

User.php

<?php

namespace App;

//use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Auth\Authenticatable as AuthenticableTrait;
use Illuminate\Auth\Passwords\CanResetPassword;

class User extends \Eloquent implements Authenticatable
{
    use AuthenticableTrait;
    protected $fillable = ['first_name','last_name','username','password','mobile','email','token'];

     public function blog()
    {
        return $this->belongsToMany('App\Blog');
    }
}

2 个答案:

答案 0 :(得分:0)

Laravel API默认设置不包括会话。您无法在API控制器中获取会话。您可以将用户ID作为参数传递给API控制器,但是会存在一些安全问题,因此不建议这样做。

答案 1 :(得分:0)

会话未在API中支持。为此,您可以使用Redis