【发布时间】:2016-03-23 08:56:12
【问题描述】:
这个问题有几个部分:
Mobile app
API server
Laravel 4.2 Web App server
Client web view (UIWebView/browser)
我正在寻找在移动应用上进行身份验证时确保对客户端的 API 安全访问的最佳方法。下面我概述了我目前的策略:
Mobile ---(1) basic auth credentials ------> Laravel
App server
/ ^ \
(4) / \ \ (2) basic auth/
cookie/ / \ \ initial API request
data / (3) \ \
Client <___________/ payload/ \ \
| cookie \ \_> API
|(5) ----- server
|cookie/ ^
|request |
-----------------------------------------
如果我的绘图不清楚,会发生以下情况:
- 基本身份验证信息从移动应用发送到 laravel 服务器
- 基本身份验证信息与来自 Laravel 的初始数据请求一起发送到 API 服务器
- API 服务器使用初始负载和访问 cookie 进行响应
- 我将访问 cookie 传递给客户端
- 客户端现在可以使用 cookie 访问 API 服务器了
我不是安全专家,但我认为这种方法没有任何致命缺陷。所有传输都通过 HTTPS 发送,基本凭据永远不会发送到客户端。
所以我的问题主要在于第 4 步和第 5 步。这在 Laravel/任何地方是否安全/可行?
我在文档中看到可以使用
获取和设置 CookieCookie::get('name');
和
$response = Response::make('Hello World');
$response->withCookie(Cookie::make('name', 'value', $minutes));
在客户端,虽然我不确定如何确保我的 cookie 与我的 API 请求一起发送。任何输入都会很棒。
注意:我负责 Laravel 服务器和客户端。我们公司刚刚开始对部分移动应用程序采用混合方法,因此在混合平台时处理身份验证是新手(即我们知道如何进行 Web 登录,而不是像这样的间接身份验证)。
提前谢谢!
【问题讨论】:
标签: security laravel authentication cookies