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