Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

petwhatever's avatar

PasswprdlessAuthentication

Auth::login($token->user, $request->remember);

in MagicLoginController

gives me this error:

FatalThrowableError in SessionGuard.php line 439: Type error: Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, null given, called in C:\wamp64\www\this\vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php on line 294

I did what it says, or so do I think, but to no avail...

Any ideas about what this error alludes to?

MagicLoginController

<?php

namespace polemos\Http\Controllers\Auth;

use Auth;
use polemos\Models\UserLoginToken;
use polemos\Http\Requests;
use Illuminate\Http\Request;
use polemos\Auth\MagicAuthentication;
use polemos\Http\Controllers\Controller;


class MagicLoginController extends Controller
{

    protected $redirectOnRequested = '/signin';

    

    public function show()
    {

        return view('/auth/signin');

    }


    public function sendToken(Request $request, MagicAuthentication $auth)
    {
        
        $this->validateLogin($request);

        $auth->requestLink();

        return redirect()->to($this->redirectOnRequested)->with('success', 'We have sent you a link! Please, check your email inbox to login!');
        
    }


    
    public function validateToken(Request $request, UserLoginToken $token)
    {
        
        $token->delete();

        //if ($token->isExpired()) {
          //  return redirect('/login/magic')->with('error', 'That magic link has expired.');
        //}

        //if (!$token->belongsToEmail($request->email)) {
          //  return redirect('/login/magic')->with('error', 'Invalid magic link.');
        //}

        Auth::login($token->user, $request->remember);

        //$token->delete();

        return redirect()->intended();
    }
    


    protected function validateLogin(Request $request)
    {
        $this->validate($request, [
            'email' => 'required|email|max:255|exists:users,email'
        ]);
    }

}
0 likes
0 replies

Please or to participate in this conversation.