在Laravel 5中自定义auth,登录并以相同的形式注册

时间:2015-06-17 15:53:51

标签: php authentication laravel laravel-5

如何在同一页面中执行相同的登录和注册表单。喜欢pinterest.com 并在注册后立即登录用户。

我不知道如何进行手动身份验证,只知道默认Auth\AuthController

我有这个控制器,模型和视图..扔我错误 MethodNotAllowedHttpException in compiled.php line 7717:

型号:publish.php

class Publish extends Model implements AuthenticatableContract, CanResetPasswordContract{

    //
    use Authenticatable, CanResetPassword;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'user_profiles';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['email', 'password'];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = ['password', 'remember_token'];

}

controller:PublishController

use App\Http\Controllers\Controller;
use App\Publicar;
use Auth;
use Request;

class PublishController extends Controller {


    public function index()
    {

        return view('partials.loginCreate', compact('publish'));


    }


     public function authenticate()
    {
        if (Auth::attempt(['email' => $email, 'password' => $password]))
        {
            return redirect()->intended('dashboard');
        }
    }

查看:login.blade.php

<form class="form-horizontal" role="form" method="POST" action="{{ url('/publish/authenticate') }}">
                        <input type="hidden" name="_token" value="{{ csrf_token() }}">

                        <div class="form-group">
                            <label class="col-md-4 control-label">E-Mail Address</label>
                            <div class="col-md-6">
                                <input type="email" class="form-control" name="email" value="{{ old('email') }}">
                            </div>
                        </div>

routes.php文件

Route::get('publish', 'PublishController@index');
Route::get('publish/authenticate', 'PublishController@authenticate');
Route::get('publishLogout', 'PublishController@destroy');

1 个答案:

答案 0 :(得分:1)

更改路线
Route::get('publish/authenticate', 'PublishController@authenticate');

Route::post('publish/authenticate', 'PublishController@authenticate');

因为您在调用authenticate方法时发布了一些数据,但是您选择的路由方法是get,因此您获得了MethodNotAllowed异常