[Day 27] - React 前端串後端 - Cookie存取

目前在浏览器储存使用者资料的主流方式有两种,
一种是存local storage、一种是存在Cookie里面,
其他还有trust token、web sql等等的这里就先不提

透过浏览器的开发者工具(f12),可以看到这个网站存了哪些东西在什麽地方
https://ithelp.ithome.com.tw/upload/images/20211012/20128973boBozcGVBg.png

在React中,我们可以直接用js呼叫localStorage来操作资料的存取,
不过因为跟Cookie相比,localStorage在资安上的防御手段没有Cookie来得丰富,
所以我决定还是使用Cookie在浏览器上存取资料。

首先安装npm i universal-cookie

接着在程序中import Cookies from 'universal-cookie';

然後新增 存&取Cookie的function,还满简单的吧~

//cookie
  const cookies = new Cookies();

  export const setToken = (token) => {
  cookies.set('token', token, 
  { path: '/',secure: true,sameSite :true}
  );
  console.log(cookies.get('token'));
  };

export const getAuthToken = () => {
  if (cookies.get('token')===undefined){
    return '';
  }
  return cookies.get('token');
};

这三个参数分别代表:
secure: true 只能在https连线下回传Cookie
httpOnly: true 禁止透过script操作Cookie
sameSite :true 禁止跨站回传Cookie

我原本在这个Cookie里面有加上Optional的参数httpOnly: true,
但是发现加上去的话我就没办法在前端存取Cookie内的token了...

如果不加上httpOnly: true,就表示javascript可以对Cookie做操作,
虽然有另外两个参数,但安全性还是大大降低,因此另外还需要透过其他header来做资安上的补强

下次来试试看trust token api好了/images/emoticon/emoticon10.gif


<<:  【Day 27】- 再爬一次 Dcard ?(实战向 Dcard API 发出请求)

>>:  [day27]Vue实作-即时交易查询

Day 16: AWS Config简介

What is AWS Config? AWS Config是一项能让你随时监控你组态(Config...

Java学习之路05---运算子

架构图 前言 表达式是程序进行算术运算中的表示方式,我们可以简单地把表达式拆解为表达式 = 运算子 ...

Day04 - Amazon ECS Anywhere 基础说明与建置(下)

先前将主机已经注册上去了 那接下来就是进到『Task Definitions』开始来建立服务 点选『...

Day14 vue.js注册验证帐号是否重复ep2

延续昨天 今天的目标是把注册功能完善! 这是昨天的console.log 来试试看 把id(帐号)设...

EP 30: Archive and Publish TopStore App for iOS in Visual Studio

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~ 本篇是 Re: 从零开始用 Xamarin 技...