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