注册成功后,我想将所有数据作为POST传递到登录路由。你如何在laravel 4中做到这一点?
我知道我可以在注册后对用户进行身份验证,但登录页面还有其他参数和更多必需的身份验证过程。
所以我希望将注册过程中输入的用户名和密码推送到登录过程中,以便它可以通过登录路由中的其他进程。 (例如令牌生成需要app_id和app_secret的后期数据)
答案 0 :(得分:0)
您可以使用Laravel Events执行此操作:
在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('/');
}
答案 1 :(得分:0)
为什么不将很多额外的逻辑移到用户模型中。然后,您可以在登录后和注册后调用$user->crazySecureLogin();
。这样你就可以保持DRY,它也可能会清理你的登录控制器方法。最重要的是,您不必担心发送帖子请求作为回复。
答案 2 :(得分:0)
return Redirect::to('routename')->withInput();
或
return Redirect::to('routename')->with('email', $emailvalue)->with('password', $passwordValue)
等
答案 3 :(得分:0)
在您的课程上添加名称空间
use Redirect;
将此代码添加到重定向阶段。
return Redirect::route('route_name',['username' => $request->username,
'password' => $request->password]);