无法在Laravel中以登录形式登录用户

时间:2019-05-16 05:18:36

标签: php laravel

我是laravel和编码的新手,在这里,我使用这种简单的注册和登录表单注册表单来注册用户并将其存储在数据库中,但是当我使用存储在数据库中的相同信息登录用户时在使用登录表单时,它只会将我重定向回表单本身,仅当电子邮件和密码不是根据数据库而是按数据库登录时才会发生,而不是将我重定向回表单时,它将重定向到我的仪表板...任何帮助将不胜感激谢谢...

UserController.php

<?php

namespace App\Http\Controllers;


use App\Http\Requests;
use App\User;
use App\UserTypes;

use Auth;
use Hashids;
use Redirect;
use Illuminate\Http\Request;
use Hash;


class UserController extends Controller
{  

    public function getDashboard()
    {
        return view('dashboard');
    }


    //Storing the user information into the database
    public function postSignUp(Request $request)
    {
        $email = $request['email'];
        $first_name = $request['first_name'];
        $password = $request['password'];

        $user = new User();
        $user->email = $email;
        $user->first_name = $first_name;
        $user->password = $password;
        $user->save();

        //redirecting back 

        return redirect()->route('dashboard');

    }

    //Logging users in

    Public function postLogIn(Request $request)
    {
        if (Auth::attempt(['email'=>$request->email, 'password'=>$request->password]))
        {
            return redirect()->route('dashboard');
        }

            return redirect()->back();
    }

}

路线

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('signup');
});


Route::post('/signup',[
    'uses' => 'UserController@postSignUp',
    'as' => 'signup'


]);

Route::get('/dashboard',[
    'uses' => 'UserController@getDashboard',
    'as' =>'dashboard'
]);

Route::post('/login',[
    'uses' => 'UserController@postLogIn',
    'as' => 'login'

]);

我的html表单

@extends("layouts.master")

@section("content")

<div class="row">
    <div class="col-md-6">
    <h3>Sign Up here!</h3>
    <form method="post" action="{{route('signup')}}">
        <div class="form-group">
<label for="email">Your email</label>
<input class="form-control" type="text" name="email" id="email">
</div>

<div class="form-group">
<label for="first_name">First Name</label>
<input class="form-control" type="text" name="first_name" id="first_name">
</div>

<div class="form-group">
<label for="password">Password</label>
<input class="form-control"  type="password" name="password" id="password">
</div>

<button type="sumbit" class="btn btn-primary">sumbit</button>
<input type="hidden" name="_token" value="{{ Session::token()}}">

    </form>
    </div>
</div>
<br>



<div class="row">
    <div class="col-md-6">
    <h3>Login here!</h3>
    <form method="post" action="{{route('login')}}">
        <div class="form-group">
<label for="email">Your email</label>
<input class="form-control" type="text" name="email" id="email">
</div>

<div class="form-group">
<label for="password">Password</label>
<input class="form-control"  type="password" name="password" id="password">
</div>

<button type="sumbit" class="btn btn-primary">Login</button>
<input type="hidden" name="_token" value="{{ Session::token()}}">

    </form>
    </div>
</div>


@endsection

2 个答案:

答案 0 :(得分:0)

这是因为您将密码存储为纯文本。您必须更改此行

DECLARE @fldYear INT=null
SET @fldYear = 2012
IF (((@fldYear % 4 = 0) AND (@fldYear % 100 != 0)) OR (@fldYear % 400 = 0))
PRINT '1'/*This is leap Year*/
ELSE
PRINT '0'/*This is not leap Year*/

对此

$user->password = $password;

答案 1 :(得分:0)

您正在以纯文本格式保存密码,这不是一个好方法。 laravel 5.7及更高版本使用HAsH存储密码 您可以使用以下代码:

use Illuminate\Support\Facades\Hash;
$user->password = Hash::make($password);

两种形式的csrf都丢失了

@extends("layouts.master")

@section("content")

<div class="row">
    <div class="col-md-6">
    <h3>Sign Up here!</h3>
    <form method="post" action="{{route('signup')}}">
       @csrf
        <div class="form-group">
<label for="email">Your email</label>
<input class="form-control" type="text" name="email" id="email">
</div>

<div class="form-group">
<label for="first_name">First Name</label>
<input class="form-control" type="text" name="first_name" id="first_name">
</div>

<div class="form-group">
<label for="password">Password</label>
<input class="form-control"  type="password" name="password" id="password">
</div>

<button type="sumbit" class="btn btn-primary">sumbit</button>
<input type="hidden" name="_token" value="{{ Session::token()}}">

    </form>
    </div>
</div>
<br>



<div class="row">
    <div class="col-md-6">
    <h3>Login here!</h3>
    <form method="post" action="{{route('login')}}">
        @csrf
        <div class="form-group">
<label for="email">Your email</label>
<input class="form-control" type="text" name="email" id="email">
</div>

<div class="form-group">
<label for="password">Password</label>
<input class="form-control"  type="password" name="password" id="password">
</div>

<button type="sumbit" class="btn btn-primary">Login</button>
<input type="hidden" name="_token" value="{{ Session::token()}}">

    </form>
    </div>
</div>