Laravel:使用javascript

时间:2018-11-23 15:05:41

标签: javascript php laravel authentication

我有一个表单,用户可以随时输入他的电子邮件。因此,我用它来即时创建他的帐户。创建成功,我将api路由与POST一起使用,并将behinf与控制器一起使用,我先使用User :: create([...]),然后再使用Auth :: login($ user)...一切都很好从API脚本的角度来看,用户已连接。

但是从表单页面的角度来看,如果用户更改或刷新页面,则不会建立联系。我认为这是出于安全原因,但是我该怎么做呢?我是Laravel的新手,我只想找到正确的“ laravel”方式。

谢谢。

编辑:

在路由文件中:

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();
    }
}

0 个答案:

没有答案