当前位置: 首页 > 知识库问答 >
问题:

Laravel 7手动身份验证会话问题

万俟丁雷
2023-03-14

TL;DR:成功登录并重定向到/home后,我被控制器的中间件踢回/login$this-

我有一个php apache docker开发环境。最后,我能够将Laravel7用于一项新服务,所以我设置了它,获得了框架并开始使用它。我不能使用Laravel的哈希算法,因为我知道有一种自定义方法可以用于手动身份验证。

所有这些都说明了这一点

public function login(Request $r)
{
    $data = $r->validate([
        'username' => 'required|string',
        '_pswrd'   => 'required|string',
    ]);

    $credentials = [
        'login'    => $data['username'],
        'password' => $data['_pswrd'],
        'status'   => 'A',
    ];

    try {
        if (Auth::guard()->attempt($credentials, $r->has('remember'))) {
            // Auth::user() is found and valid so redirect...
            return $r->wantsJson()
                ? new Response('', 204)
                : redirect()->intended('/');
        }

        return back()->with('errors', new MessageBag([ 'auth.failed' ]));

    } catch (Exception $e) {
        Log::warning($e);

        return back()->with('errors', new MessageBag([ 'auth.unknown' ]));
    }
}

但是,然后我去home路线

class HomeController extends Controller
{
    public function __construct()
    {
        // \Illuminate\Support\Facades\Auth::user() === null
        $this->middleware('auth');
    }

    public function index()
    {
        return view('home');
    }
}
  • 为什么HomeController中的Auth::user()为空

共有2个答案

西门高歌
2023-03-14

警卫叫什么名字?是给web卫士的吗?所以,尝试填补后卫('web')或只是删除它,直接Auth::attempt([])

贡和裕
2023-03-14
匿名用户

这是一种明显的问题没有得到检查。Laravel改变了(很多)用户的模型,我想以后再看<代码>主键和键类型属性必须固定,以便验证中间件是否正常工作。

我将留下这个答案,因为我在这个问题上花了很多时间,总是认为它与身份验证或会话配置有关,而实际上它与身份验证或会话配置无关。

 类似资料:
  • 我正在尝试根据Laravel5.3中的API对用户进行身份验证。它不起作用。一旦用户在登录后重定向,身份验证就不会持久。 路由配置如下: 在LoginController.php我正在使用 成功保存在文件中的登录后,路由的会话不会启动。 所以在路径上:

  • 在身份验证等情况下,与会话相比,使用JWTs有什么优势? 它是作为独立方法使用还是在会话中使用?

  • 我正在使用Vert。后端为x,前端为AngularJS。 Vert. x服务器使用POST和GET方法接收HTTP操作。不知何故,我为每个请求获取不同的会话ID。 以下是来自我的LoginFormHandler类句柄例程的代码片段。 我正在将用户对象放入当前会话中。然后我移动到新页面并向Vert. x服务器发送POST请求。在那个POST处理程序中,我正在尝试获取会话对象: 我没有得到用户。此外,

  • 我遵循了认证教程,但遇到了一些问题。 它不能将变量传递给导入的函数。

  • keytool-list-v-keystore my_keystore.jks

  • 我使用Spring Security Oauth2和JWT将客户端应用程序登录/授权到授权服务器应用程序,这两个应用程序都是用Spring Boot2构建的。 在客户端应用程序中,我手动执行登录,从授权服务器检索JWT令牌,然后在代码中执行 然后我想在客户端应用程序流的稍后部分检索令牌: 但oauth对象为空。