PHP Laravel将参数作为POST数据在重定向中传递

5
注册成功后,我想将所有数据作为POST传递到登录路由。在laravel 4中如何实现此操作?
我知道可以在注册后直接验证用户,但登录页面具有其他参数和更多所需的身份验证过程。
因此,我希望将在注册过程中输入的用户名和密码推送到登录过程中,以便它可以通过登录路由内部的其他流程(例如需要应用程序ID和应用程序密钥的令牌生成)进行处理。请问该如何实现?

你可以使用会话来实现。 - Anam
但这是一个API。移动设备和API服务器之间的通信。无法保持会话。你能详细说明一下吗? - madziikoy
如果API调用在头部发送了授权令牌。 - Risheekant Vishwakarma
4个回答

0
  1. 在你的类顶部添加命名空间

    use Redirect;
    
  2. 将以下代码添加到重定向阶段。

    return Redirect::route('route_name',['username' => $request->username, 
                                         'password' => $request->password]);
    

我认为这应该是“重定向器”,对吗? - Matt

0

你可以使用 Laravel 事件来实现这个功能:

filters.php 中注册你的事件,或者创建一个 events.php 并将其添加到 composer.json 中:

Event::listen('user.registered', function($data)
{
    var_dump($data['app_id']);
    var_dump($data['app_secret']);
    var_dump($data['user']);
});

并在您的register()方法中触发它:

public function register()
{
    /// register your user:

    $user = new User;

    ...

    $user->save();

    /// fire the event:

    Event::fire('user.registered', array(
                                        'app_id' => 'API', 
                                        'app_secret' => 'WHATEVER', 
                                        'user' => $user
                            ));

    /// Redirect the user to where it should go next:

    return Redirect::to('/');
}

0
return Redirect::to('routename')->withInput();

或者

return Redirect::to('routename')->with('email', $emailvalue)->with('password', $passwordValue)

等等


以上内容存储在会话中,而不是作为提交。 - Jazerix

0
为什么不将许多额外的逻辑移动到用户模型中。然后您可以在登录和注册后调用 $user->crazySecureLogin();。这样您就能保持DRY,并且可能还能整理您的登录控制器方法。最重要的是,您不必担心将POST请求发送作为响应。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接