2016-06-15 8 views
1

私はLaravelの全く新しい初心者ですが、多くのガイドとその後の後、私のプロジェクトは本当にうまくいきました。既存のLaravelプロジェクトとユーザーデータベースに認証を統合します

今、私はUsernamePasswordの両方を格納しようとしているUsersTableという名前のユーザーテーブルを持っています。 と多数のGoogle検索を試した後、私はUserテーブル名と認証に使用されるUsername-Passwordフィールドの両方を明確に定義する明確な方法がないことがわかりました。

これを試して作成した別のプロジェクトのusersという名前のテーブルで元の電子メールパスワード認証を試しましたが、それは魅力的です。私はLaravelがすでに認証システムを提供しているので、それをカスタマイズする方法があると(私が信じる)、なぜ車輪を再発明するのだろうと思います。

ありがとうございます! :D

答えて

0

使用php artisan make:auth、その後:

あなたがに移動する必要が Userモデルを使用して、ユーザーからの既定のテーブルを変更するには:config/auth.php

そして、これらの変更

'providers' => [ 
     'users' => [ 
      'driver' => 'eloquent', 
      'model' => App\UsersTable::class, //put the right model name here or you can use database driver 
     ], 
    ], 

を作ります雄弁なモデルの表を変更するには、これを行うことができます。

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

    class UsersTable extends Model 
    { 
     /** 
     * The table associated with the model. 
     * 
     * @var string 
     */ 
     protected $table = 'UsersTable'; 
    } 

はちょうどlaravelによって生成Authcontroller

class AuthController extends Controller 
{ 
    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 

    protected $redirectTo = '/home'; 
    protected $username = 'username'; // you can put whatever column you want here from your table 

編集laravelはビューを生成し、これを追加し、ユーザー名に電子メールからデフォルトのログイン資格情報を変更してname="username"に電子メールの入力名を変更するにはmain.blade.phpを拡張し、いくつかのスタイリングを行うと、あなたは私が

EDIT推測行ってもいいです:いけない検証のものを変更することを忘れを

+0

ありがとうございました!パスワードフィールドはどうですか? $ password = 'PassWordField'はできますか? – srakrn

+0

hmm私は本当にそれについて知っていませんが、これはあなたのために働いた場合は、ショットとbtwを与えてください、投票のセクションの下に緑色のマーク –

0

Laravel基本的な認証システムは、独自の認証方式を作成するための最速の方法ではありません...私はあなたの認証をカスタマイズすることができSentinel Packageに勧め...

例えばユーザー名をすることができます使用してユーザーを認証しますそれは私はそれはあなたを助けることを願っていますあなたの認証方法をカスタマイズするための最速の方法です私のため

Sentinel::authenticate(array(
    'username' => 'john.doe', 
    'password' => 'foobar', 
)); 

:次のように行います。

関連する問題