Sentry:UserExistsException,有一个全新的用户?

时间:2015-03-11 04:14:39

标签: php cartalyst-sentry

我尝试通过Sentry注册新用户,而Sentry::register会抛出UserExistsException

但我确信它在我的数据库中不存在(基于电子邮件的登录,我创建了一个随机地址)。

这是我的代码的摘录:

try {
try {
    Sentry::setUserProvider(new UserProvider\Provider(new Hashing\NativeHasher, 'Alsace\User'));
    $user = Sentry::register(['email' => $post['adresse_email'], 'password' => $mdp]);
    $code_activation  = $user->getActivationCode();
} catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
    throw new DomainException("Le champ email n'est pas renseigné.");
} catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
    throw new DomainException("Le champ mot de passe n'est pas renseigné.");
} catch (Cartalyst\Sentry\Users\UserExistsException $e) {
    throw new DomainException("Un utilisateur ayant cet e-mail existe déjà.");
}

$user->first_name = $post['prenom'];
$user->last_name  = $post['nom'];
$user->telephone  = !empty($post['portable']) ? $post['portable'] : null;
$user->save();

Alsace\Bureau::whereIn('id', $ids_bureaux)->get()->each(function($bureau) {
    global $user;

    $bureau->user_id = $user->id;
    $bureau->save();
});

// ...

header('201 Created', true, 201);
header('Content-Type: application/json');
echo json_encode(['success' => 'Création OK']);
exit();
}  catch (DomainException $e) {
  // header('200 OK', true, 200);
  header('Content-Type: application/json');
  echo json_encode(['exception' => $e->getMessage()]);
  exit();
}

我的HTTP响应是一个状态代码为201的JSON,但JSON的内容对应于我DomainException捕获中的一个内容?

PS:我认为这可能是因为jQuery两次提交我的表单,但事实并非如此。

0 个答案:

没有答案