【问题标题】:Auth not working in Laravel TinkerAuth 在 Laravel Tinker 中不起作用
【发布时间】:2018-07-03 18:37:01
【问题描述】:

在 Tinker 内部,我正在尝试:

>>> Auth::loginUsingId(12);
=> false
>>> Auth::user();
=> null
>>> Auth::attempt(['email' => 'my@email.com']);
=> false

我猜是因为 Auth 通常使用会话数据,并且会话可能不适用于修补程序。

是否可以在 tinker 中进行身份验证?

【问题讨论】:

    标签: laravel laravel-5 laravel-5.3 tinker


    【解决方案1】:

    可以在 Tinker 中登录。例如:

    auth()->loginUsingId(1)
    auth()->id()
    

    通常,auth()->id() 的输出将是 1

    如果它不适合你,请确保 storage 目录是可写的:

    sudo chmod -R 755 storage
    

    当您使用attempt() 方法时,您也做错了。正确的语法是:

    attempt(['email' => 'my@email.com', 'password' => 'secret'])
    

    【讨论】:

    • 这些都是好点。事实上,这让我找到了答案。我有一个自定义的 UserProvider。我使用电子邮件作为标识符实现了retrieveById。我需要打电话给Auth::loginUsingId('my@email.com');
    • Auth::loginUsingId 不适用于 Laravel 6+,但 Auth::attempt(['email', 'password' ]) 工作正常。
    • Auth::loginUsingId() 在 Laravel 8 中为我工作
    • @Pranta Saha Auth::loginUsingId(1) 在 Laravel 7 中为我工作。它也应该在 Laravel 6 中工作。也许您在“loginUsingId”部分后遗漏了括号,或者在其中遗漏了一个值?
    猜你喜欢
    • 2016-05-17
    • 2017-01-06
    • 2017-01-06
    • 2018-02-27
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    相关资源
    最近更新 更多