简体   繁体   English

make:auth()登录/注册不起作用

[英]make:auth() Login/Register not working

I am working with Laravel 5.5 . 我正在使用Laravel 5.5 I created login/register page with make:auth about 1 month ago and didn't change anything inside Laravel auth core files. 我大约在1个月前使用make:auth创建了登录/注册页面,并且没有更改Laravel auth核心文件中的任何内容。 I just register and, after that I want to login. 我只是注册,然后要登录。 Login page reloaded when I hit login button and don't give any error messages. 当我点击登录按钮并且没有给出任何错误消息时,登录页面重新加载。 I don't know what's wrong. 我不知道怎么了 This code worked during 1 month and from yesterday it doesn't work right. 该代码在1个月内有效,从昨天开始它一直无法正常工作。 I just attached my login/register files here. 我只是在这里附加了我的登录/注册文件。

Auth Register Controller 验证注册控制器

<?php

namespace App\Http\Controllers\Auth;

use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller {

use RegistersUsers;

protected $redirectTo = '/home';

public function __construct()
{
    $this->middleware('guest');
}

protected function validator(array $data)
{
    return Validator::make($data, [
        'member_id' => 'required|string|integer|min:000000|max:999999',
        'password' => 'required|string|min:6|confirmed',
    ]);
}

protected function create(array $data)
{
    return User::create([
        'member_id' => $data['member_id'],
        'password' => bcrypt($data['password']),
    ]);
}

This is my register.blade.php 这是我的register.blade.php

<form class="form-horizontal" method="POST" action="{{ route('register') }}">
   {{ csrf_field() }}
<div class="form-group{{ $errors->has('member_id') ? ' has-error' : '' }}">
    <label for="member_id" class="col-md-4 control-label">
        {{ Lang::get('all.info.member_id') }}
    </label>

    <div class="col-md-6">
        <input id="member_id" type="number" onkeypress='return event.charCode >= 48 && event.charCode <= 57' class="form-control" name="member_id" value="{{ old('member_id') }}" required> 
        @if ($errors->has('member_id'))
            <span class="help-block">
                <strong>{{ $errors->first('member_id') }}</strong>
            </span>
        @endif
    </div>
</div>

<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
    <label for="password" class="col-md-4 control-label">
        {{ Lang::get('all.info.password') }}
    </label>

    <div class="col-md-6">
        <input id="password" type="password" class="form-control" name="password" required> 
        @if ($errors->has('password'))
            <span class="help-block">
                <strong>{{ $errors->first('password') }}</strong>
            </span>
        @endif
    </div>
</div>

<div class="form-group">
    <label for="password-confirm" class="col-md-4 control-label">
        {{ Lang::get('all.info.confirm_password') }}
    </label>

    <div class="col-md-6">
        <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
    </div>
</div>

</form>

This is my login.blade.php 这是我的login.blade.php

<form class="form-horizontal" method="POST" action="{{ route('login') }}">
    {{ csrf_field() }}

    <div class="form-group{{ $errors->has('scout_id') ? ' has-error' : '' }}">
       <label for="scout_id" class="col-md-4 control-label">
          {{ Lang::get('all.login_p.scout_id') }}
       </label>

       <div class="col-md-6">
           <input id="member_id" type="number" onkeypress='return event.charCode >= 48 && event.charCode <= 57' class="form-control" name="member_id" value="{{ old('member_id') }}" required autofocus>

           @if ($errors->has('member_id'))
               <span class="help-block">
                   <strong>{{ $errors->first('member_id') }}</strong>
               </span>
           @endif
        </div>
    </div>

    <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
        <label for="password" class="col-md-4 control-label">
            {{ Lang::get('all.login_p.password') }}
        </label>

        <div class="col-md-6">
           <input id="password" type="password" class="form-control" name="password" required>

           @if ($errors->has('password'))
              <span class="help-block">
                  <strong>{{ $errors->first('password') }}</strong>
              </span>
           @endif
        </div>
     </div>

    <div class="form-group">
         <div class="col-md-8 col-md-offset-4">
             <button type="submit" class="btn btn-primary">
                 {{ Lang::get('all.login') }}
             </button>
         </div>
    </div>
</form>

did you use Auth::attempt(); 您是否使用Auth :: attempt(); ?

Auth::attempt(['member_id' => $request->member_id, 'password' => $request->password]);

You are not telling the LoginController that your 'email'/'username' field is not email . 您没有告诉LoginController您的'email'/'username'字段不是email You have to tell it you want to use a different field. 您必须告诉它要使用其他字段。

Username Customization 用户名自定义

"By default, Laravel uses the email field for authentication. If you would like to customize this, you may define a username method on your LoginController :" “默认情况下,Laravel使用email字段进行身份验证。如果要自定义此字段,可以在LoginController上定义username方法:”

public function username()
{
    return 'member_id';
}

Laravel 5.5 Docs - Authentication - Authentication Quickstart - Authenticating Laravel 5.5 Docs-身份验证-身份验证快速入门-身份验证

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

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