Как переопределить активацию Sentinel (используя Laravel)

По большей части я хочу, чтобы все пользователи использовали контрольную точку активации при регистрации на моем сайте.

В некоторых случаях я хотел бы обойти это, что-то вроде

Activation::setToTrue($user);

Есть ли хороший способ сделать это, о котором вы знаете?

Спасибо

Бен


person Ben    schedule 31.12.2017    source источник


Ответы (2)


На самом деле я должен сначала зарегистрировать их, затем, если у них есть мобильный телефон, я использую Nexmo для проверки, а затем, если это удастся, мне нужно отменить активацию, но без знания кода (потому что я, очевидно, не хочу хранить на сессия).

Итак, я пришел к этому грубому решению, которое не может быть правильным, не так ли?

        \Activation::remove($user);
        $activation = \Activation::create($user);
        \Activation::complete($user, $activation['code']);
person Ben    schedule 01.01.2018
comment
Это то, что я искал .. Спасибо - person Christopher Kikoti; 31.10.2018

Попробуйте это активировать при регистрации с помощью sentinel-

Sentinel::registerAndActivate();

Или вы можете сделать это, следуя bypassing существующему пользовательскому объекту. Сначала нужно check есть ли activation record exists для этого пользователя или нет. Затем выполните необходимые шаги для complete активации в соответствии с вашими потребностями.

$activation = \Cartalyst\Sentinel\Laravel\Facades\Activation::exists($user);
if($activation){
    Activation::complete($user, $activation->code);
}
else{
    $activation2 = Activation::create($user);
    Activation::complete($user, $activation2->code);
}
person Sohel0415    schedule 31.12.2017