我正在为iOS应用程序构建我的第一个剩余API。我用来构建API的框架是Laravel。
到目前为止一切都很好,但我不确定如何使用API登录用户。会话在这里可以工作吗?我已经在使用SSL/HTTPS,但我不想对每个用户进行身份验证请求,那么让他们只登录一次的最佳方式是什么?
另外,oAuth在这里工作正常吗?
如果你有任何关于如何让用户登录Laravel构建的api的例子,请分享。
提前感谢
根据我的经验,Laravel内置的身份验证组件只能通过表单、会话和cookie应用于正常的身份验证。为了处理API身份验证,我使用了这些方法,希望其中一种适合您。
OAuth 2
借助lucadegaperi/oauth2-server-laravel,您可以通过OAuth流确保API的安全。更多文档可以在Github上的软件包wiki或PHP League Oauth2主页上找到。您可以使用过滤器来保护您的API路由,如下所示:
Route::get('protected-resource', ['before' => 'oauth:scope1,scope2', function() {
// return the protected resource
}]);
但是,OAuth需要一个数据库来保存客户端凭据和更多设置,如果您的API不那么复杂,则此解决方案可能不适合。
HTTP身份验证
此解决方案比OAuth更简单,我建议将其与SSL(HTTPS)连接一起使用,因为使用此解决方案的原因可以看到身份验证信息。我以前使用的软件包是Intervention/httpauth。使用此软件包,您可以选择两种身份验证方法:basic(通过HTTP标头发送组合username:password
的base64编码)或摘要。此解决方案不需要任何数据库。