如何存储 Angular 前端使用的 OAuth1 令牌
Posted
技术标签:
【中文标题】如何存储 Angular 前端使用的 OAuth1 令牌【英文标题】:How to store OAuth1 tokens used by an Angular Front-End 【发布时间】:2019-07-10 21:09:06 【问题描述】:我目前正在从事一个无头项目:Angular 前端使用后端的 API 动态检索数据。
此 API 需要 OAuth1 认证,因此 Angular 应用程序必须在每次调用时传递 4 个令牌(请求、请求密码、访问权限、访问密码)。
目前,这些令牌存储在 JS 配置文件中。由于 API 客户端是纯前端应用程序,因此任何用户都可以访问它们(甚至从浏览器的控制台!)。
我的问题很明显:如何在我的用例中以更安全的方式存储这些令牌?
提前谢谢你。
【问题讨论】:
你的 Angular 版本是什么? 我正在使用 Angular 7 您可以将它们保存在 JSON 文件中并使用服务读取它们,或者您可以将它们加密存储在本地存储中。 谢谢艾哈迈德。确实,我已经考虑过这样的策略。我认为它没用,因为任何人都可以看到编码/解码功能,因为它是前端应用程序的一部分...... 【参考方案1】:我认为您可以对每个令牌进行编码并将其存储在本地存储中,当您需要发送令牌时,后端从本地存储中检索它并对其进行解码并发送回。
【讨论】:
谢谢你,阿里。确实,我已经考虑过这样的策略。我认为它没用,因为任何人都可以看到编码/解码功能,因为它是前端应用程序的一部分......【参考方案2】:保存在本地存储中:
localStorage.setItem('currentUser', JSON.stringify( token: token, name: name ));
从本地存储中获取:
var currentUser = JSON.parse(localStorage.getItem('currentUser'));
var token = currentUser.token; // your token
【讨论】:
以上是关于如何存储 Angular 前端使用的 OAuth1 令牌的主要内容,如果未能解决你的问题,请参考以下文章