【发布时间】:2014-07-28 22:35:49
【问题描述】:
我目前正在构建一个 Web 应用程序,它是一个 AngularJS 前端,它与使用 Laravel 构建的 RESTful API 进行通信。我取得了不错的进展,但我很难理解如何处理用户身份验证。
有人建议我应该使用 OAuth 进行身份验证,我决定使用它,因为这对我来说也是一种学习体验。我用来处理这个问题的包是oauth2-server-laravel。
基本的用户故事是用户可以为应用程序注册他们的用户名/密码组合,然后使用相同的用户名和密码登录应用程序。它们仅通过其用户名和密码进行身份验证,而不是任何客户端机密。登录后,他们应该获得一个访问令牌,该令牌将与以后的每个请求一起发送,以在不同的 API 端点上对他们进行身份验证。
OAuth2 库有一个“密码流”授权类型,这似乎是我需要的,但它也需要 client_id 和 client_secret 参数,这是我不想要的。请求 URI 是这样的:
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
但我想要的只是:
POST https://www.example.com/oauth/access_token?
grant_type=password&
username=the_username&
password=the_password
我应该如何提供尚未进行身份验证的用户的客户端 ID 和密码?
我可以使用不同的授权,还是我想要实现的目标根本不适合 OAuth?
【问题讨论】:
标签: php angularjs authentication laravel oauth