Set Laravel's Auth user
laravel-4
Solution
EDIT
In order to do so you have to use in your secondary user's model the `UserInterface` class
use Illuminate\Auth\UserInterface;
Then you need to implement the 5 required methods: `getAuthIdentifier`, `getAuthPassword`, `getRememberToken`, `setRememberToken` and `getRememberTokenName`.
Since apparently `config > auth` can't be changed on run time, you'll have to check the user's credentials manually, get the instance and do `Auth::login($secondaryUser)`.
<?php
use Illuminate\Auth\UserInterface;
class SecondaryUser extends Eloquent implements UserInterface {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'secondary_users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password');
/**
* Get the unique identifier for the secondary user.
*
* @return mixed
*/
public function getAuthIdentifier()
{
return $this->getKey();
}
/**
* Get the password for the secondary user.
*
* @return string
*/
public function getAuthPassword()
{
return $this->password;
}
/**
* Get the token value for the "remember me" session.
*
* @return string
*/
public function getRememberToken()
{
return $this->remember_token;
}
/**
* Set the token value for the "remember me" session.
*
* @param string $value
* @return void
*/
public function setRememberToken($value)
{
$this->remember_token = $value;
}
/**
* Get the column name for the "remember me" token.
*
* @return string
*/
public function getRememberTokenName()
{
return 'remember_token';
}
public function mainUser()
{
return $this->belongsTo('User');
}
}
ORIGINAL ANSWER
I'm not sure to have understood what you wanted, but maybe this can help: http://laravel.com/docs/security#manually
$user = User::find(1);
Auth::login($user);
And if you have 2 `user` models, I think it should work as long as they extend the main User class
Problem
I'm using Laravel's `Auth` class to authenticate users on my site, basic `Auth::attempt(...)` stuff. Recently there has been a new requirement (yay stakeholders!) and now there's a need for users to create new users (secondary users). Since the login of the main users goes through a third party system, there's no way I can store the secondary users with the main users (and re-use the current authentication system). What I thought of was to somehow tell the `Auth` class to login and forcefully set the user on the `Auth::user()` method. Is there a way to do this?