Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — PHP — FCC 2026

TI - Desenvolvimento de SistemasPHP
Código
fc142247
Banca
FCC
Órgão
MPE AP
Ano
2026
Cargo
Ana Min ( )

Uma área de desenvolvimento de software está revisando o código de autenticação de usuários em um sistema em Laravel, em condições ideais. Durante os testes, verificou-se que a autenticação nunca é concluída com sucesso, mesmo quando o e-mail e a senha estão corretos.

 

Abaixo está o trecho do método authenticate do controller responsável pelo login. A numeração de linhas é apenas ilustrativa.

 

1 | <?php
2 | namespace App\Http\Controllers;
3 |
4 | use App\Models\User;
5 | use Illuminate\Http\Request;
6 | use Illuminate\Support\Facades\Auth;
7 | use Illuminate\Support\Facades\Hash;
8 |
9 | class AuthController extends Controller {
10 | public function authenticate(Request $request) {
11 | $request->validate(['email'=>'required|email','password'=>'required']);
12 | $user = User::where('email', $request->email)->first();
13 | if (!$user) { return back()->withErrors(['email'=>'Usuário não encontrado']); }
14 |
15 | // echo $user;
16 |
17 | if ($user && $user->password === $request->password) {
18 | Auth::login($user);
19 | return redirect()->intended('dashboard');
20 | }
21 | return back()->withErrors(['email'=>'Credenciais inválidas']);
22 | }
23 | }

 

Com base no código e nos sintomas descritos, deve ser ajustada a

  1. Alinha 12, pois a busca por e-mail deveria usar find($request->email) em vez de where.
  2. Blinha 13, pois o retorno deveria ser abort(404) e não back()->withErrors().
  3. Clinha 15, pois o comentário está mal posicionado e impede a execução do código.
  4. Dlinha 17, pois compara a senha em texto puro com o hash salvo no banco, devendo usar Hash::check($request->password, $user->password).
  5. Elinha 18, pois Auth::login($user) não deve ser chamado diretamente após a verificação.
Revelar gabarito e comentário

GabaritoD — linha 17, pois compara a senha em texto puro com o hash salvo no banco, devendo usar Hash::check($request->password, $user->password).

Link permanente: /questoes/fc142247