Vuejs + Laravel API: можно ли хранить секреты в Vue SPA для аутентификации? - PullRequest
0 голосов
/ 05 мая 2018

Я создал Vue SPA, который использует Laravel API для операций на стороне сервера, и каждый проект находится в отдельной папке.

Теперь оба проекта запущены и могут взаимодействовать друг с другом. Я могу отправлять HTTP-запросы с помощью Axios из приложения Vue на промежуточные программные маршруты Laravel API.

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

Ниже приведен метод запроса из приложения Vue

    handleLoginForm () {
        const postData = {
            grant_type: 'password',
            client_id: '2',
            client_secret: 'MySecretFromTheDataBase',
            username: this.login.email,
            password: this.login.password
        }
        axios.post('oauth/token', postData) 
            .then(response => {
                // some logic
            })
    }

Вопрос в том, как мне обработать client_id и client_secret из клиентского приложения? Я подозреваю, что наличие жестко запрограммированного секрета представляет большую угрозу безопасности.

Какой метод аутентификации мне следует использовать?

...