2017-04-20 1 views
0

J'ai un projet api écrit en utilisant laravel qui utilise le passeport pour générer des jetons api. Ces jetons sont utilisés pour distinguer qui frappe sur mes routes afin que les données appropriées soient renvoyées. Tout cela fonctionne actuellement.Restreindre l'accès à la page de connexion Laravel avec certificat

Les écrans de génération de jeton et les routes api sont tous deux contenus dans le même projet. Donc, frapper:

example.com

vous amène à l'écran de connexion. Une fois que vous vous connectez, vous générez un jeton, puis utilisez ce jeton dans les requêtes suivantes vers les routes API. Le jeton est inclus lors de demandes de:

example.com/api/route1

example.com/api/route2/id1

Etc.

Vers la fin du projet, un exigence est venu d'augmenter la sécurité de la page de connexion. Je souhaite générer un certificat client que je fournis à mes utilisateurs et qui est nécessaire pour accéder à la page de connexion.

Comment est-ce que je ferais cela sans affecter comment j'ai configuré les routes api? En d'autres termes, je suis à la recherche d'avoir un flux de travail pour les utilisateurs comme celui-ci:

    certificat d'importation
  • dans le navigateur
  • Maintenant que le certificat est installé, l'utilisateur peut accéder à la page de connexion
  • connexion, générer jeton
  • utiliser un jeton pour effectuer des appels programmatiques sur les routes api. Ces appels ne doivent pas nécessiter le certificat de la page de destination.

Est-ce possible? Ou est-ce que l'ajout du certificat client pour les connexions affectera également les routes API?

Merci pour tout conseil.

Répondre

0

Vous pouvez également utiliser des portes et des politiques pour certaines actions: https://laravel.com/docs/5.4/authorization

permet de dire un utilisateur peut mettre à jour un poste , mais ne peux pas le supprimer. Ces politiques sont utiles pour cela