Laravel: Создать нового автоматически подключенного пользователя с помощью JavaScript - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть форма, где в какой-то момент пользователь может ввести свой адрес электронной почты.Итак, я использую его, чтобы на лету создать его аккаунт.Создание в порядке, я использую маршрут API с POST, а теперь с контроллером, я использую User :: create ([...]), за которым следует Auth :: login ($ user) ... Все в порядке сС точки зрения скрипта API пользователь подключен.

Но с точки зрения страницы формы, если пользователь изменит или обновит страницу, он не будет подключен.Я думаю, что это из соображений безопасности, но как я могу это сделать?Я новичок в Laravel, я просто хочу найти правильный путь "laravel".

Спасибо.

edit:

В файле маршрутов:

Route::post('/user', 'UserController@receiveData');

В файле контроллера:

class UserController extends Controller
{
    public function receiveData (Request $request)
    {
        $response = new ServerResponse('User');

        switch ( $action = $request->input('action') )
        {
            case 'create_user_from_email' :

                /*if ( Auth::check() )
                {
                    echo '(Connected, email:'.Auth::user()->email.')';
                }
                else
                {
                    echo '(Not connected)';
                }*/

                if ( $email = $request->input('email') )
                {
                    $errorToken = null;

                    if ( $user = User::createFromEmail($email, $errorToken) )
                    {
                        /* Données optionnelles */
                        $profileData = $request->input('profile') ? json_decode($request->input('profile'), true) : null;
                        $addressData = $request->input('address') ? json_decode($request->input('address'), true) : null;

                        /* Création du profile, de l'adresse et du compte en banque par défaut.  */
                        $profile = $user->profile($profileData);
                        $address = $profile->primaryAddress($addressData);
                        $bankAccount = $user->primaryBankAccount();

                        /* Auto-connexion. */
                        Auth::login($user, true);

                        if ( Auth::check() )
                        {
                            $response->setStatus(0, 'New User created.');
                            $response->addData('user_id', $user->id);
                            $response->addData('profile_id', $profile->id);
                            $response->addData('address_id', $address->id);
                            $response->addData('bank_account_id', $bankAccount->id);
                        }
                        else
                        {
                            $response->setStatus(4, 'Unable to connect the new User !');
                            $response->addData('error', 'user_not_connected');
                        }
                    }
                    else
                    {
                        $response->setStatus(3, 'Unable to create a new User ! See "error" key.');
                        $response->addData('error', $errorToken);
                    }
                }
                else
                {
                    $response->setStatus(2, 'There is email address !');
                }
                break;

            default:
                $response->setStatus(1, 'Action "'.$action.'" unhandled !');
                break;
        }

        return $response->get();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...