Как хранить токены OAuth1, используемые Angular Front-End

В настоящее время я работаю над безголовым проектом: Angular Front-End динамически извлекает данные с использованием Back-End API.

Этот API требует авторизации OAuth1, поэтому приложение Angular должно передавать 4 токена (запрос, секрет запроса, доступ, секрет доступа) при каждом вызове.

В настоящее время эти токены хранятся в файле конфигурации JS. Поскольку клиент API — это чисто внешнее приложение, любой пользователь может получить к ним доступ (даже из консоли браузера!).

Мой вопрос довольно очевиден: как хранить эти токены более безопасным способом в моем случае использования?

Заранее спасибо.


person David Kohelet    schedule 17.02.2019    source источник
comment
Какая у вас версия Angular?   -  person YaakovHatam    schedule 17.02.2019
comment
Я использую Ангуляр 7   -  person David Kohelet    schedule 17.02.2019
comment
Вы можете сохранить их в файле JSON и прочитать их с помощью службы, или вы можете просто хранить их в зашифрованном виде в локальном хранилище.   -  person ahmed gaber    schedule 29.04.2019
comment
Спасибо Ахмед. Действительно, я уже думал о такой стратегии. Я думаю, что это бесполезно, потому что функции кодирования/декодирования будут видны всем, поскольку они являются частью внешнего приложения...   -  person David Kohelet    schedule 30.04.2019


Ответы (2)


Я думаю, вы можете закодировать каждый токен и сохранить его в локальном хранилище, когда вам нужно отправить токен, серверная часть извлекает его из локального хранилища, декодирует его и отправляет обратно.

person Ali Badr    schedule 17.02.2019
comment
Спасибо Али. Действительно, я уже думал о такой стратегии. Я думаю, что это бесполезно, потому что функции кодирования/декодирования будут видны всем, поскольку они являются частью внешнего приложения... - person David Kohelet; 30.04.2019

сохранить в локальном хранилище:

localStorage.setItem('currentUser', JSON.stringify({ token: token, name: name }));

получить из локального хранилища:

var currentUser = JSON.parse(localStorage.getItem('currentUser'));
var token = currentUser.token; // your token
person Baruch G.    schedule 17.02.2019