2015-05-23 36 views
0

我只是嘗試了將近24小時才能使用Laravel Auth來工作。我想一個很簡單如下:Laravel 4.2,Hash:make()不能用於Auth :: user() - > attempt()

創建一個用戶:

$emailActivationCode = str_random(60); 
$created = User::create([ 
    'email' => '[email protected]', 
    'password' => \Hash::make('[email protected]'), 
    'activation_code' => $emailActivationCode, 
    'protected' => 1, 
    'activated' => 1 
]); 

,我試圖右下面的代碼的登錄:

$user = \Auth::user()->attempt(array(
    'email'  => '[email protected]', 
    'password' => '[email protected]', 
    'activated' => 1 
)); 

我的用戶模型如下:

namespace App\Models; 

use Illuminate\Auth\UserTrait; 
use Illuminate\Auth\UserInterface; 
use Illuminate\Auth\Reminders\RemindableTrait; 
use Illuminate\Auth\Reminders\RemindableInterface; 
use Jacopo\Authentication\Models\User as JacopoUser; 
use Cartalyst\Sentry\Users\UserExistsException; 
use Cartalyst\Sentry\Users\LoginRequiredException; 

class User extends JacopoUser implements UserInterface 
{ 
    use UserTrait, RemindableTrait; 

    public static function boot() 
    { 
     static::setHasher(new \Cartalyst\Sentry\Hashing\NativeHasher); 
    } 

    public function fundings() 
    { 
     return $this->hasMany('App\Models\Funding', 'users_id'); 
    } 

    public function projects() 
    { 
     return $this->hasMany('App\Models\Project', 'users_id'); 
    } 
} 

但是登錄總是失敗。我看不到任何錯誤消息,也不能登錄。我試圖谷歌,但大多數解決方案已經建議我已經實施了。

Laravel的任何專家都可以提出一個更好的解決方案或解決此問題嗎?如果你儘快回覆,這將是非常好的。

編輯: 似乎由哈希生成的哈希:使()是無效的/錯的。我複製了之前在另一個項目中生成的散列,它對上面的代碼非常有用。這個哈希如何產生錯誤?有人知道這種情況嗎?

+0

您使用的身份驗證庫是否可以與底層Auth門面一起使用comptable?就我所知,Auth :: attempt僅適用於Laravel內置的認證合同。 – Zarathuztra

+0

我不確定,因爲這是由另一個開發人員完成的。您可以爲Laravel 4.2建議一個更好的庫/軟件包來執行多個ACL嗎? –

+0

是的,但似乎我們使用的版本似乎與Laravel 4.2兼容,如此處所述https://github.com/intrip/laravel-authentication-acl/blob/1.2/docs/index.md。 –

回答

0

就在這裏是一個潛在的問題

Auth::user()->attempt 

嘗試是在驗證的功能,你不返回用戶模式,然後嘗試。

if (Auth::attempt(array(...)) 
$user = Auth::user(); 
+0

那麼在這種情況下,即使我傳錯了證書,它也會成功。實際上,這段代碼是由另一位開發人員編寫的,他說這是與用戶交互,因爲我們在系統中有多個級別的用戶(多個角色)。我在拉拉維爾並不擅長,但如果我找到方向,我可以繼續前進。 –

+0

但是沒有登錄的用戶Auth :: user()應該不返回任何值 – Zarathuztra

相關問題