Maintenant, j'utilise quelque chose comme ça pour authentifier l'utilisateur sur mon site de base:
if (Auth::attempt($request->only(['id', 'password']))) {
//
}
Comment puis-je modifier ce code pour utiliser une colonne personnalisée comme nom d'utilisateur? https://laravel.com/docs/5.3/passport#password-grant-tokens
Vous pouvez utiliser la méthode findForPassport dans votre modèle utilisateur.
Cette méthode prend le nom d'utilisateur comme argument et renvoie le modèle utilisateur
Par exemple:
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
// ... some code
public function findForPassport($username) {
return $this->where('id', $username)->first();
}
}
Un peu trop tard pour répondre, mais j'ai eu du mal à essayer de comprendre cela, donc pour être complet et peut-être pour aider les autres à l'avenir.
Si vous jetez un oeil à cette partie du code du passeport vous verrez qu'il recherche également une méthode validateForPassportPasswordGrant
, donc en plus de la réponse d'Alexandre, c'est ainsi que vous pouvez authentifier un utilisateur en utilisant des champs personnalisés.
J'espère que cela aide quelqu'un.