8

某种已安装的哨兵(我之所以这么说是因为我不明白其中的一段话:

Sentinel 附带了照明/数据库的默认实现,为了使用它,请确保在 composer.json 文件中需要它。

// 导入必要的类

use Cartalyst\Sentinel\Native\Facades\Sentinel;
use Illuminate\Database\Capsule\Manager as Capsule;

// 包含作曲家自动加载文件

require 'vendor/autoload.php';

问题 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);

当我得到输入时,我应该把它写在控制器中吗?那么电子邮件激活呢?

4

4 回答 4

5

让 SENTINEL AUTHENTICATION-AUTHORIZATION 包真正为初学者运行:

https://github.com/rydurham/Sentinel/blob/master/readme.md

这就是作者。如果您已按照任何其他站点的说明进行安装,则最好删除您的安装并再次运行 composer update 以消除任何哨兵痕迹。

按照 ryan durham 步骤安装。(它们至少在我发布之日有效)。

一旦你这样做了,你会发现已经有预先创建的刀片页面。你可以去注册为第一个,然后输入你的数据(当然之前配置过你的数据库和邮件参数)。

此外,在最新版本的 Laravel 中的 Mail.php 中,与以前的版本相比,有一个参数发生了变化:关于加密的参数。就我而言,我需要像过去一样设置它,简单地说:

'加密' => 'ssl' 而不是'加密' => env('MAIL_ENCRYPTION', $_ENV['MAIL_ENCRYPTION']

在第二种情况下,它将无法连接到您的邮件服务器。

这就是说,是的,Sentinel 已经预先构建好了。填写注册表后,您会看到自己已添加到数据库中,但仍未激活。然后在您的邮箱中,您将拥有我谈到的那个链接。单击它,您的帐户将被激活。

于 2015-08-01T13:30:03.417 回答
4

以下代码:

use Cartalyst\Sentinel\Native\Facades\Sentinel; use Illuminate\Database\Capsule\Manager as Capsule;

适用于尝试本地使用该软件包的人。由于您使用的是 laravel,因此您不需要这个。请确保您遵循 laravel 特定的说明。

因为你已经laravel-5在你的问题中添加了标签,所以我假设这就是你正在使用的。在这种情况下,首先将其添加到您的 composer.json: composer require cartalyst/sentinel "2.0.*"中,然后将以下内容添加到您的 config/app.php 文件中:

$providers数组: 'Cartalyst\Sentinel\Laravel\SentinelServiceProvider',

并且到$alias~ array

'Activation' => 'Cartalyst\Sentinel\Laravel\Facades\Activation', 'Reminder' => 'Cartalyst\Sentinel\Laravel\Facades\Reminder', 'Sentinel' => 'Cartalyst\Sentinel\Laravel\Facades\Sentinel',

完成此操作后,您可以发布和迁移包。你还需要Cartalyst\Sentinel\Users\EloquentUser在你的用户模型上扩展end而不是 Eloquent。如果您使用“角色”模型,您也需要这样做。

有关更多信息,请遵循文档:https ://cartalyst.com/manual/sentinel/2.0#laravel-5

确保您使用的是正确的版本:Laravel 5 为 2.0,laravel 4 为 1.0。*

关于您的第二个问题,您必须向客户端发送一封包含激活码的电子邮件(通常该代码隐藏为查询字符串或其他内容,因此用户不一定需要知道它)而不是您使用代码进行激活。或者,如果您愿意,您可以在他们注册后自动进行身份验证。

阅读他们的文档激活后的更多信息,如果您仍然无法确定我们是来帮助您的,但请先尝试自己。

于 2015-08-05T16:08:50.307 回答
4

看看这个包:
https
://github.com/srlabs/centaur 它将帮助您启动并运行cartalyst/sentinel

于 2016-02-22T21:48:46.233 回答
1

我知道这篇文章很旧,但与 srlabs/centaur 类似,您可以使用Sentinel Centurion

它可以让您使用 Cartalyst Sentinel 快速搭建身份验证、注册、权限/角色/用户管理、忘记密码、激活电子邮件等。

于 2019-01-23T23:15:53.283 回答