Mettre en œuvre une authentification OAuth 2.0 avec un Laravel API

Je suis actuellement à la construction d'une application web qui est un AngularJS frontend qui communique avec une API RESTful construit à l'aide de Laravel. Je suis en train de faire de bons progrès, mais trouver qu'il est difficile d'obtenir ma tête autour de la façon de gérer l'authentification utilisateur.

J'ai été informé que je devrais être en utilisant OAuth pour l'authentification, et j'ai décidé de l'utiliser vu que ça pourrait être une expérience d'apprentissage pour moi. Le paquet que j'utilise pour gérer cela est oauth2-serveur-laravel.

La base de l'utilisateur de l'histoire est que les utilisateurs peuvent enregistrer leur nom d'utilisateur/mot de passe pour l'application et vous connecter à l'application avec le même nom d'utilisateur et mot de passe. Ils ne sont authentifiés par leur nom d'utilisateur et le mot de passe, et pas par n'importe quel client secret. Après la connexion, ils doivent être donné un jeton d'accès qui vous sera envoyé avec chaque demande de s'authentifier sur les différentes API des points de terminaison.

La OAuth2 la bibliothèque dispose d'un "flux de mots de passe" type de subvention qui semble être ce dont j'ai besoin, mais il prend également client_id et client_secret paramètres, que je ne veux pas. L'URI de la demande est quelque chose comme ceci:

POST https://www.example.com/oauth/access_token?
grant_type=password&
client_id=the_client_id&
client_secret=the_client_secret&
username=the_username&
password=the_password&
scope=scope1,scope2&
state=123456789

Mais ce que je veux, c'est juste:

POST https://www.example.com/oauth/access_token?
grant_type=password&
username=the_username&
password=the_password

Comment suis-je censé fournir un numéro de client et le secret de l'utilisateur qui n'a pas encore authentifier?

Est là une autre subvention que j'ai peut-être l'aide, ou est ce que je veux réaliser tout simplement pas adapté pour OAuth?

OriginalL'auteur John Dorean | 2014-06-08