簡體   English   中英

如何從我的 AuthController 訪問用戶數據並成功獲取 FileUploadController 中的值?

[英]How can I access user data from my AuthController and grab the value in FileUploadController successfully?

我的最終目標是我試圖在我的AuthController中的login() function 中獲取email值,並在我的FileUploadController中使用它。 但在我這樣做之前,我需要確保我可以訪問user ,但它不會讓我。

我試圖put()它放在 session 和get()中,但它一直在 Postman 中返回null運行dd($request->session()->get("user");未通過身份驗證。

但是,當我使用用戶 email 和密碼成功登錄前端時,這怎么可能呢? 我不確定我在這里缺少什么。 下面是代碼供參考。

AuthController

public function login(Request $request) {
    $request->validate([
        'email' => 'required|string|email',
        'password' => 'required|string',
        'remember_me' => 'boolean'
    ]);

    $credentials = request(['email', 'password']);
    if(!Auth::attempt($credentials))
        return response()->json([
            'message' => 'Unauthorized'
        ], 401);

    $user = $request->user();
    $tokenResult = $user->createToken('Personal Access Token');
    $token = $tokenResult->token;
    if ($request->remember_me)
        $token->expires_at = Carbon::now()->addWeeks(1);
    $token->save();

    $request->session()->put("user", $user);

    return response()->json([
        'access_token' => $tokenResult->accessToken,
        'token_type' => 'Bearer',
        'expires_at' => Carbon::parse(
            $tokenResult->token->expires_at
        )->toDateTimeString(),
        $user
    ]);
}

文件上傳控制器:

public function store(Request $request){
    $filePath = $request->file('file')->getClientOriginalName();
    $data= ['file_path'=>$filePath, 'user_id'=>1];

    dd($request->session()->get("user"));

    DB::table('user.photos')->insert($data);
    echo "Record inserted successfully.";
}

使用 Auth 外觀可能更容易,它可以讓您訪問當前授權的用戶。 您可以直接在 FileUploadController 中使用它。

Auth::user()->email;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM