Laravel 6: วิธีเข้าสู่ระบบอัตโนมัติของผู้ใช้ในแอปพลิเคชัน Laravel อื่นโดยไม่ต้องใช้รหัสผ่าน

ฉันกำลังทำงานกับแอปพลิเคชัน Laravel 6 ที่ผู้ใช้สามารถลงชื่อเข้าใช้โดยใช้ API (ส่วนหน้าอยู่ใน VueJS) และฉันไม่มีปัญหากับมัน ตอนนี้ฉันมีแอป Laravel 6 อีกตัวบนเซิร์ฟเวอร์อื่น สถานการณ์คือ: ผู้ใช้กำลังจะลงชื่อเข้าใช้ผ่านแอปแรกและคลิกปุ่มเพื่อนำทางไปยังแอปที่สอง (รวมถึง API ที่มีส่วนหน้า VueJS) ฉันต้องการเข้าสู่ระบบผู้ใช้โดยอัตโนมัติโดยไม่ต้องลงชื่อเข้าใช้อีกครั้ง ฉันพยายามทดสอบโค้ดตัวอย่าง

ในเส้นทาง/api.php

Route::group(['namespace' => 'Api', 'middleware' => 'guest'], function () {
   Route::post('manual-login', 'ManualLoginController'); // use __invoke method

ผู้ควบคุม

use Illuminate\Support\Facades\Auth;

$userId = $request->user_id;
Auth::loginUsingId($userId);

$userId เป็นฟิลด์ uuid ที่มีค่า 37aca7b3-7c6b-3745-9b54-5ced6cc3216e และฉันก็ลองใช้รหัสผู้ใช้จำนวนเต็มด้วย แต่ฉันได้รับ

BadMethodCallException: Method Illuminate\Auth\RequestGuard::loginUsingId does not exist

ฉันจะใช้ Auth::loginUsingId หรือ Auth::login เพื่อลงชื่อเข้าใช้ผู้ใช้ในแอปโดยอัตโนมัติโดยไม่ต้องป้อนรหัสผ่านได้อย่างไร หากมีวิธีการที่ดีกว่านี้ ฉันขอขอบคุณคำอธิบาย ขอบคุณล่วงหน้า


person PHP User    schedule 03.03.2021    source แหล่งที่มา
comment
คลาส Auth ที่คุณเรียกถูกต้องหรือไม่   -  person Met Br    schedule 04.03.2021
comment
รหัสดูไม่ดีสำหรับฉัน มันอาจเป็นจำนวนเต็มธรรมดา (ผสม) -- Auth::loginUsingId(55)   -  person Met Br    schedule 04.03.2021
comment
ในระบบ uuid ไม่ใช่ id และไม่สามารถเปลี่ยนได้ในขณะนี้ด้วยเหตุผลอื่น และฉันลองใช้ id จำนวนเต็มแล้ว แต่ได้รับข้อผิดพลาดเดียวกัน   -  person PHP User    schedule 04.03.2021
comment
github.com/laravel/framework/ blob/6.x/src/Illuminate/Support/ -- ดูสิ มันอยู่ในบรรทัดที่ 17 ฐานถูกกำหนดไว้ที่อื่น   -  person Met Br    schedule 04.03.2021
comment
จะเกิดอะไรขึ้นกับคุณเท่านั้น : ใช้ Auth; ไม่ใช่เป็น Illuminate\Support\Facades\auth   -  person Met Br    schedule 04.03.2021
comment
@MetByrdy ฉันได้ลอง use Auth; แล้ว แต่ได้รับข้อผิดพลาดเดียวกัน   -  person PHP User    schedule 04.03.2021
comment
เส้นทาง::post('manual-login', 'ManualLoginController'); สิ่งนี้อาจต้องใช้ @index หรือวิธีการด้วย   -  person Met Br    schedule 04.03.2021
comment
@MetByrdy ฉันใช้ __invoke และสามารถทดสอบข้อมูลและตรวจสอบว่ามีผู้ใช้อยู่หรือไม่และทำงานได้ดีโดยไม่จำเป็นต้องเพิ่มวิธีการ   -  person PHP User    schedule 04.03.2021