我只是嘗試了將近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的任何專家都可以提出一個更好的解決方案或解決此問題嗎?如果你儘快回覆,這將是非常好的。
編輯: 似乎由哈希生成的哈希:使()是無效的/錯的。我複製了之前在另一個項目中生成的散列,它對上面的代碼非常有用。這個哈希如何產生錯誤?有人知道這種情況嗎?
您使用的身份驗證庫是否可以與底層Auth門面一起使用comptable?就我所知,Auth :: attempt僅適用於Laravel內置的認證合同。 – Zarathuztra
我不確定,因爲這是由另一個開發人員完成的。您可以爲Laravel 4.2建議一個更好的庫/軟件包來執行多個ACL嗎? –
是的,但似乎我們使用的版本似乎與Laravel 4.2兼容,如此處所述https://github.com/intrip/laravel-authentication-acl/blob/1.2/docs/index.md。 –