繁体   English   中英

我做了一个登录系统,但它显示错误的登录详细信息并且无法登录

[英]I made a login system but it is saying wrong login details and unable to login

我想创建一个简单的登录系统,我做了一个登录系统,但它说的是错误的登录细节。 我尝试做转储测试返回null。 请在评论中查看 dd 测试。 由于这个原因也无法注销

我的登录控制器是:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use Validator;

class LoginController extends Controller
{
    public function index()
    {
        return view('login');
    }

    
    public function store(Request $request)
    {
        $this->validate($request, [
            'email'   => 'required|email',
            'password'  => 'required|alphaNum|min:3'
                ]);

        $user_data = array(
            'email' => $request->get('email'),
            'password' => $request->get('password')
        );
        
        //$user = Auth::user();
        //dd($user);              I have done dump test but it is returning null
        
        if(Auth::attempt($user_data))
        {
            return redirect()->route('welcome');
        }
        else
        {
            return back()->with('error','wrong Login Details');
        }
    } 
}

我的登录刀片是

          @if ($message = Session::get('error'))
                <div class="alert alert-danger alert-block">
                    <button type="button" class="close" data-dismiss="alert">×</button>
                        <strong>{{ $message }}</strong>
                </div>
          @endif
           @if (count($errors) > 0)
            <div class="alert alert-danger">
                    <ul>
                            @foreach($errors->all() as $error)
                                <li>{{ $error }}</li>
                            @endforeach
                    </ul>
            </div>
           @endif
      
    <form action="{{route('login.save')}}" style="border:1px solid #ccc" method="post">
                {{ csrf_field() }}
        <div class="container">
            <h1>Login</h1>
            <p>Please fill in this form to Login</p>
            <hr>
            <label for="email"><b>Email</b></label>
            <input type="text" placeholder="Enter Email" name="email" value="{{old('name')}}" >
                @error('email')
                  {{$message}}
                @enderror  

            <label for="psw"><b>Password</b></label>
            <input type="password" placeholder="Enter Password" name="password"  >
                @error('password')
                  {{$message}}
                @enderror  

            <label for="psw-repeat"><b>Repeat Password</b></label>
            <input type="password" placeholder="Repeat Password" name="psw-repeat" >
            <div class="clearfix">
                <button type="submit" class="signupbtn">Log in</button>
            </div>
        </div>
    </form>
</body>
</html>

网络路线是

Route::get('/register','App\Http\Controllers\RegisterController@index')->name('register');
Route::post('/register/save','App\Http\Controllers\RegisterController@store')->name('register.save');
Route::get('/login','App\Http\Controllers\LoginController@index')->name('login');
Route::post('/login/save','App\Http\Controllers\LoginController@store')->name('login.save');
Route::get('/welcome','App\Http\Controllers\LogoutController@store')->name('logout');

尝试调试您的代码

1-注册后查看数据库。 你的密码是加密的吗?

2- 提交表单 dd($request->all()) 如果一切正常

3- Auth::attempt($request->only('email', 'password'))

我希望这个答案可以帮助您调试代码。

尝试在控制器本身上运行 dd 。 利用

dd($request->all());

$this->validate($request, [
            'email'   => 'required|email',
            'password'  => 'required|alphaNum|min:3'
                ]);

截至目前,没有迹象表明您的输入数据甚至到达了控制器。 您的路线甚至可能不正确,如果不知道您的项目结构或文件名,就不可能说出来。 如果 dd 没有返回这两个输入,则您知道路由不正确或中间件正在拦截数据。 测试完成后,在评论中使用更多信息更新此答案。 另外我不确定您为什么要尝试 dd Auth:user。 当然它不会返回任何东西。 您还没有登录。 没有用户可以显示。 除非你做过类似的事情:

$users = Users::firstOrCreate($data);
                Auth::loginUsingId($users->id);
                $users->save();

您实际上并没有在数据库中保存任何用户或登录。我认为您需要找到更好的教程来执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM