我使用Laravel作为API,使用AngularJs作为前端。
从API开始,数据就是这样的。
$data = [
'Token' => \Auth::guard("api")->user()->api_token,
];
return \Response::json([
'Status' => true,
'Message' => 'ok',
'Data' => $data,
], $Code);
在AndularJs控制器中,它在cookie中保存如下。
$cookies.put("Token", response.data.Data.Token);
然后从Cookie中检索它,就像这样
$cookies.get("Token");
我认为,这是安全问题,如果有人知道令牌,他们会提交任何请求。
你能提出更好的建议吗?
我们可以做...像获取当前设备信息(Android或桌面等等)然后将最终加密值(令牌+设备信息)保存到cookie或其他媒体中吗?然后在向api发送请求时....我们可以解密以确定是否是被盗的令牌......?有什么我可以使用的,在所有设备中都是独一无二的吗?
答案 0 :(得分:0)
强制要求将TLS / SSL(HTTP over TLS或HTTPS)与网络令牌结合使用,以确保您的API与角度客户端之间的安全通信,在大多数情况下这足够了,您可以通过加密来添加额外的图层令牌有效负载本身使用JSON Web加密(JWE)规范,然后将其存储在您的cookie中。
希望这有帮助。
答案 1 :(得分:0)
我认为可能的解决方案是Laravel Passport。这种方式在前端存储client_id
和client_secret
,然后使用它们来交换授权令牌。