سوث/laravel-sift

Laravel 5 的 Sift Science 包

v0.1.1 2016-07-15 18:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:25:40 UTC


README

Laravel 5 的 Laravel 5 包用于 Sift Science.

安装

使用 Composer 安装此包

composer require suth/laravel-sift

接下来,将以下内容添加到 config/app.php 文件中的 providers 数组

Suth\LaravelSift\SiftServiceProvider::class,

通过在 config/app.php 文件中的 aliases 数组中添加以下行来注册外观

'SiftScience' => Suth\LaravelSift\Facades\SiftScience::class,

配置

您可以使用以下 artisan 命令发布配置文件

php artisan vendor:publish --provider="Suth\LaravelSift\SiftServiceProvider"

默认配置文件将在您的 .env 文件中检查 SIFT_API_KEYSIFT_JAVASCRIPT_KEY

用法

JavaScript 段落

要将 JavaScript 段落添加到您的页面中,请在主 blade 模板的 body 标签打开后立即包含以下行

@include('sift::snippet')

这将使用会话 ID 以及在认证时用户的电子邮件跟踪用户与您网站的交互。有关 JavaScript 段落的更多信息,请参阅 Sift Science 文档

自定义 Sift 用户 ID

默认情况下,此包使用 getAuthIdentifier() 方法在跟踪身份验证事件时获取用户标识符(在大多数情况下是用户 ID)。您可以通过向您的用户模型添加一个返回您想要跟踪的值的 getSiftId() 方法来自定义此值。如果您不想暴露用户 ID(该值在 JavaScript 段落中可见)或希望使用其他值,这很有用。请注意,使用电子邮件地址(或任何可能更改的值)可能不是一个好主意,因为如果该值更改,您将失去在 Sift 中对用户的引用。

建议您在报告自己的事件时使用 SiftScience::getUserId($user) 获取用户的 Sift ID,因为这是在内部使用的方法。$user 参数是可选的,默认为当前认证用户。它当前使用先前提到的 getSiftId() 方法的值,并在必要时回退到 getAuthIdentifier()

如果您正在自定义标识符,请注意,如果将来更改它,Sift 中将创建另一个用户,并且其评分可能会受到影响。此外,请务必查看 允许使用的字符

跟踪事件

默认情况下,此包跟踪成功和失败的登录以及注销,但您可能还想跟踪其他操作,如交易。

要跟踪事件,您需要与 SiftClient 类交互,如下所示

// Import the facade
use SiftScience;

// Returns the SiftClient class
SiftScience::client();

// Track an event
SiftScience::client()->track('$transaction', [
    '$user_id'          => SiftScience::getUserId(),
    '$amount'           => 1000000,
    '$currency_code'    => 'USD',
    '$user_email'       => $user->email,
    '$transaction_type' => '$sale',
    '$transaction_status' => '$success',
    '$session_id'       => SiftScience::getSessionId(),
]);

在上面的示例中,您会注意到 SiftScience::getSessionId()。此方法使用键 'sift_session_id' 获取当前会话中存储的标识符。您还可以将会话存储作为参数传递,用于没有当前会话的情况(例如队列)。

有关如何使用 SiftClient 类的更多信息,请参阅 sift-php 文档事件 API 参考

队列

您可能想使用队列来跟踪某些事件,以避免减慢您的应用程序。内置对认证事件跟踪的支持使用队列,但截至目前,您将不得不自行实现队列。欢迎提出将队列支持直接添加到本包中的优雅方法建议。