سوث / laravel-sift
Laravel 5 的 Sift Science 包
Requires
- illuminate/contracts: 5.1.*|5.2.*|5.3.*
- illuminate/support: 5.1.*|5.2.*|5.3.*
- siftscience/sift-php: 1.*
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_KEY
和 SIFT_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 参考。
队列
您可能想使用队列来跟踪某些事件,以避免减慢您的应用程序。内置对认证事件跟踪的支持使用队列,但截至目前,您将不得不自行实现队列。欢迎提出将队列支持直接添加到本包中的优雅方法建议。