【发布时间】:2017-05-11 14:33:54
【问题描述】:
我是一名家庭爱好者,正在学习 Laravel,目前版本为5.3。我使用的是 Mac,既不是 homestead 也不是 vagrant。
我目前正在开发一个使用登录和注册系统来创建用户的网站。
我使用php artisan migrate 在本地操作我的数据库。
如下所列,它有三个字段,分别是:
- 电子邮件
- 用户名
- 密码
我有一个User 模型(users.php):
<?php
namespace blog;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable;
class User extends Model implements Authenticatable {
use \Illuminate\Auth\Authenticatable;
use Notifiable;
protected $fillable = [
'username', 'email', 'password',
];
}
还有一个UserController 类(UserController.php):
<?php
namespace blog\Http\Controllers;
use Auth;
use blog\User;
use Illuminate\Http\Request;
class UserController extends Controller {
public function postRegister(Request $request) {
$username = $request['username'];
$email = $request['email'];
$password = bcrypt($request['password']);
$user = new User();
$user->email = $email;
$user->username = $username;
$user->password = $password;
$user->save();
return redirect()->route('login');
}
public function postLogin(Request $request) {
$credentials = [
'username' => $request['username'],
'password' => $request['password'],
];
if(Auth::attempt($credentials)) {
return redirect()->route('dashboard');
}
return 'Failure';
}
}
?>
如您所见,我使用bcrypt() 作为我的哈希方法。
但是,这个问题,总是会导致失败。
我已经检查了以下链接:
附:由于我没有使用 Input 类,因此这些链接似乎很难理解。
【问题讨论】:
-
Laravel 自带 authentication controller。为什么不使用它而不是自己编写?
-
您的“登录”路线是使用 GET 方法吗?你能附上你的路线吗?
标签: php laravel authentication laravel-5