Laravel中验证用户身份和显示验证消息时遇到问题
P粉071626364
P粉071626364 2023-09-04 21:41:24
0
1
477
<p>我在Laravel中遇到了用户认证和显示验证消息的困难。当尝试登录时,用户无法正确通过身份验证,并且验证错误消息也没有显示。</p> <p>我按照官方的Laravel文档进行了认证和验证,但即使在人工智能的帮助下,我也没有得到预期的结果。以下是我的一些代码片段:</p> <pre class="brush:php;toolbar:false;">public function store(Request $request) { $request-&gt;validate([ 'email' =&gt; 'required|email', 'password' =&gt; 'required', ]); $credentials = $request-&gt;only('email', 'password'); if (auth()-&gt;attempt($credentials)) { $user = auth()-&gt;user(); $request-&gt;session()-&gt;put('user', $user); return redirect()-&gt;route('home'); } throw ValidationException::withMessages([ 'email' =&gt; 'Invalid email or password.', ]); }</pre> <p>这是HTML代码:</p> <pre class="brush:php;toolbar:false;">&lt;!DOCTYPE html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;title&gt;Login&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Login&lt;/h1&gt; &lt;form action=&quot;/login&quot; method=&quot;post&quot;&gt; @csrf &lt;input type=&quot;email&quot; name=&quot;email&quot; placeholder=&quot;Email&quot;&gt; &lt;input type=&quot;password&quot; name=&quot;password&quot; placeholder=&quot;Password&quot;&gt; &lt;input type=&quot;submit&quot; value=&quot;Login&quot;&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;</pre> <p>最后,是路由:</p> <pre class="brush:php;toolbar:false;">&lt;?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\UserController; use App\Http\Controllers\HomeController; use App\Http\Controllers\LoginController; Route::get('/users', [UserController::class, 'index'])-&gt;name('users.index'); Route::get('/users/create', [UserController::class, 'create']); Route::post('/users', [UserController::class, 'store']); Route::get('/users/{user}', [UserController::class, 'show']); Route::get('/users/{user}/edit', [UserController::class, 'edit']); Route::put('/users/{user}', [UserController::class, 'update']); Route::delete('/users/{user}', [UserController::class, 'destroy'])-&gt;name('users.destroy'); Route::get('/home', [HomeController::class, 'index'])-&gt;name('home'); Route::get('/login', [LoginController::class, 'index'])-&gt;name('login'); Route::post('/login', [LoginController::class, 'store']); ?&gt;</pre> <p>我尝试使用登录表单中提供的凭据对用户进行身份验证。如果凭据正确,我期望Laravel能够正确地对用户进行身份验证。我还在<code>LoginController</code>的<code>store()</code>方法中使用<code>$request-&gt;validate([...])</code>设置了验证规则。我期望如果电子邮件和密码字段没有正确填写,Laravel会在<code>login.blade.php</code>视图上显示错误消息。</p> <p>当我使用正确的凭据提交登录表单时,Laravel无法正确地对用户进行身份验证,并且在不显示任何错误消息的情况下重定向回登录页面。当我使用空字段或无效数据提交表单时,相应的错误消息也不会显示在视图上。相反,表单会在没有任何反馈的情况下重定向回登录页面。</p> <p>我相信由于某些内容缺失或配置不正确,Laravel无法正确地对用户进行身份验证并显示验证消息。</p> <p>如果您能提供任何帮助来解决这个问题,我将非常感激。</p>
P粉071626364
P粉071626364

最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!