reactjs - 如何安全地将 Facebook 响应令牌保存到 React 应用程序?
问题描述
我正在开发一个使用 facebook 登录的 React 应用程序,登录成功后,facbook 返回用户当前经理的页面列表,包括令牌。这些令牌我将来会在我的应用程序中使用。这是我要保存的响应:
[
{
// page 1
access_token: "this_is_token",
category: "Community",
id: "461787374317076",
name: "page_name",
......
},
{
// page 2
},
....// other pages
]
但我不知道如何将此响应保存在我的应用程序中以确保安全。哪个最安全?Redux 状态(不安全),Redux 存储?饼干?本地存储?还是记忆?
在我的应用程序中,我会多次使用这些令牌,所以我认为应该将它们分派到 Redux 商店,但它安全吗?
非常感谢你!
解决方案
您收到的令牌里面没有密码。
你是说你能不能把它存放在任何地方?
我们现在所在的网站(stackoverflow)也将该令牌存储在本地存储中
您可以在这张图片中看到他们将令牌存储在本地存储中。
安全吗?
是的,因为它没有任何重要数据,例如密码或信用卡号。此外,如果您作为用户在您的计算机上拥有此令牌,那么您不会将此字符串提供给其他人以访问您的帐户(就像您向某人提供您的密码,这不是开发人员的错)并且此字符串太大以至于没有其他人可以自己创建可接受的字符串。
redux/cookies/本地存储? 我使用它的方式是。在登录/注册时,我将在本地存储和请求标头中设置它,刷新后我将首先检查本地存储中是否存在令牌,如果是,则需要再次设置标头,因为刷新时它们将丢失。
通过 axios,您可以轻松设置这样的标题。然后在服务器上,您需要从请求中获取标头并验证您的令牌。
import axios from 'axios'
export default function setAuthToken(token){
if(token){
axios.defaults.headers.common['autherization'] = `Bearer ${token}`
}
else{
delete axios.defaults.headers.common['autherization']
}
}
推荐阅读
- javascript - WebPack 错误:您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理此文件
- angular - 如何使用参数和定义的路由进行嵌套路由?
- python - 机场问题,使用 DP(python)在 O(n^3) 中的矩阵中获得最大面积
- python - 在 Python 中为 GA API 迭代日期范围
- jquery - 使用不对应的 href 属性突出显示滚动上的当前链接
- go - 读取:对等方重置连接
- android - 如何将整个 JSON 数组从主要活动传递到其他活动?
- python-3.x - 使用python从直线记录计数
- github-actions - 使用路径忽略时返回 Github 工作流的传递状态
- javascript - 单元测试依赖注入