Я работаю с приложением Angular 7, которое выполняет вызовы API на другом сервере. Для этого API требуется авторизация Oauth1.
Меня беспокоит то, что учетные данные OAuth1 идеально видны в файле dist/main.js
, и, очевидно, я хочу скрыть эту информацию.
Сначала я подумал о кодировании учетных данных любым методом кодирования, а затем декодировал их перед выполнением вызова API. Но это решение неэффективно, поскольку любой код интерфейсного приложения доступен, и метод кодирования / декодирования не является исключением.
Я также думал о хранении учетных данных в базе данных на стороне интерфейсного сервера, к которой непосредственно обращается приложение Angular, но мне интересно, не слишком ли это «слишком много» для моих нужд.
В настоящее время учетные данные являются атрибутами вспомогательного класса:
export class OAuth1Authorization implements IAuthorization {
private token = {
consumerKey: '...',
consumerSecret: '...',
accessToken: '...',
tokenSecret: '...'
};
private signatureMethod = 'HMAC-SHA1';
private version = '1.0';
private nonce;
// ...
}
И последнее слово. Я хочу пояснить, что в моем случае использования не хранит токен, возвращенный удаленным сервером, например, после аутентификации по имени пользователя / паролю.
Мои потребности на самом деле хранить в защищенном виде (например, чтобы информация о соединении не была доступна в открытом виде!) 4 токена, которые должны быть известны заранее, как на входе, так и на входе. задняя сторона, которая не изменится некоторое время.