2016-01-18 1 views
2

прямо сейчас im stuck at some laravel 5.2 основы. Проблема, которую я хочу решить, заключается в том, что я хочу добавить api-ключ пользователю при регистрации, который работает, но он небезопасен, как сейчас.Laravel 5.2 Добавить данные для регистрации без добавления в форму

Прямо сейчас я добавил API-ключ в регистрационную форму, но это дало бы возможность, чтобы злоумышленник мог изменить его на отправку формы. Есть ли возможность удалить это поле из формы и добавить его в Запрос до его обработки в рамках? Или что-нибудь еще, как я могу добавить ключ api к зарегистрированному пользователю после вставки в базу данных?

Благодарим вас за помощь!

+0

Post код, где вы обрабатывать вставку данных. – omerowitz

ответ

1

Если вы используете систему аутентификации по умолчанию Laravel в вы можете изменить create метод, как это:

protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'api_key' => code to generate your random string; // add this line 
     'password' => bcrypt($data['password']), 
    ]); 
} 
+0

Спасибо за это! – dspx90

0

Вы можете использовать этот PHP-JWT package для своей функциональности.

Простая библиотека для кодирования и декодирования JSON веб-токены (JWT) в PHP, в соответствии с RFC 7519.

В основном аутентификации создавать и сохранять маркер локально на устройстве. Затем каждый раз, когда вы совершаете вызов на сервер, вы проверяете этот токен и гарантируете, что пользователь - это тот, кого они называют.

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

Обычно JWT используется в приложениях без состояния, поэтому вам нужно будет отказаться от концепции сеанса сервера.

+0

Он мог бы использовать вместо этого жетоны CSRF, встроенные в Laravel? – omerowitz

+1

Для форм в том же проекте CSRF является лучшим, но для API и кросс-платформенного, этот пакет очень полезен. –

+0

Я верю, что он просто хочет добавить значение в атрибут или столбец в своей таблице 'user'. – omerowitz