我一直在使用Sentinel在Laravel 5.2上实现一个简单的身份验证系统.
// Route : /login
$success = Sentinel::authenticate(array(
'email' => $email,
'password' => $password,
));
echo $success ? 'Login success' : 'Login failed';
Run Code Online (Sandbox Code Playgroud)
因此,上述代码Login success
在验证码之后输出.但是,登录状态不会持久保存到其他请求.即:如果我从其他请求检查身份验证状态,则表示我没有登录!
// Route : test-login
echo \Sentinel::check() ? 'User is logged in' : 'User is not logged in';
Run Code Online (Sandbox Code Playgroud)
我甚至尝试过使用defaut laravel authencation \Auth::attempt
.但是,这也给了同样的东西.
非常感谢任何帮助.
我已经进入了cartalyst/sentinel,并且我已经运行了生成表所需的迁移
php artisan migrate --package=cartalyst/sentinel
Run Code Online (Sandbox Code Playgroud)
我注意到这些是users表中可用的列
我想在电子邮件后添加用户名.所以我创建了一个迁移文件.
//add a column username after email in the users table
$table->string('username')->after('email')->unique();
Run Code Online (Sandbox Code Playgroud)
现在我使用Sentinel :: register
$credentials = Input::all();
$user = Sentinel::register($credentials);
Run Code Online (Sandbox Code Playgroud)
用户名不会保存在表格中.所以我设法通过编辑vendor/cartalyst/sentinel/src/Users/EloquentUser.php来获取它.
protected $fillable = [
'email',
'username', /* i added this */
'password',
'last_name',
'first_name',
'permissions',
];
Run Code Online (Sandbox Code Playgroud)
现在这个工作,用户名存储在表中.但我想知道我在做什么是对的?我们不应该触摸packages文件夹中的文件.我们如何解决这个问题?
一种安装的Sentinel(我说有点因为我不明白一个部分说:
Sentinel附带了illuminate/database的默认实现,为了使用它,请确保在composer.json文件中需要它.
//导入必要的类
use Cartalyst\Sentinel\Native\Facades\Sentinel;
use Illuminate\Database\Capsule\Manager as Capsule;
Run Code Online (Sandbox Code Playgroud)
//包括作曲家自动加载文件
require 'vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
问题1:我在哪里写代码?
问题2:我现在最关心的是如何制作一些关于注册,激活等的内容.我本来希望创建一个链接,发送到你的电子邮件,点击它就可以激活它.但我能看到的就是:
$credentials = [
'email' => 'john.doe@example.com',
'password' => 'password',
];
$user = Sentinel::register($credentials);
or if Also activate:
$credentials = [
'email' => 'john.doe@example.com',
'password' => 'password',
];
$user = Sentinel::registerAndActivate($credentials);
Run Code Online (Sandbox Code Playgroud)
当我得到输入时,我应该在Controller中写这个?那电子邮件激活怎么样?
如何通过Sentinel获取与用户角色相关的所有用户?以及如何让Sentinel中的所有用户使用?这不起作用:
Sentinel::all()
Run Code Online (Sandbox Code Playgroud)