다른 사용자가 있으며 그 중 일부는 일반 사용자이고 나머지는 관리자입니다. 내가 필요한 것은 관리자가 사용자 목록의 버튼을 클릭하여 다른 사용자로 로그인 할 수 있다는 것입니다.Laravel 4의 특정 사용자와 로그인
내가 지금까지있는 것은 :
index.blade.php (사용자 목록) :
<a href='{{URL::route('users.loginas', array('id' => $user->id))}}'>LoginAs</a>
routes.php :
Route::group(array('before'=>'auth'), function()
{
Route::get('/', array('as'=>'index', 'uses'=>'[email protected]'));
Route::resource('users', 'UsersController');
Route::any('users/loginas/{id}', array('as'=>'users.loginas', 'uses' => '[email protected]'));
});
UsersController.php :
class UsersController extends BaseController {
...
public function loginAs($id)
{
Auth::logout();
Auth::loginUsingId($id);
return Redirect::route('provalogin');
}
}
링크를 클릭하면 ID가 1 인 사용자와 로그인 한 상태에서 사용자 목록의 ID가 2 인 사용자의 경우 mysite.com/users/loginas/2로 올바르게 리디렉션되었지만 Error가 throw됩니다.
인수 1이 통과되었습니다. \ Auth \ Guard :: login()은 인터페이스를 구현해야합니다. \ Auth \ UserInterface, 주어진 null, /var/www/mysite.com/web/vendor/laravel/framework/src/Illuminate/Auth/에서 호출됩니다. 라인 368에 Guard.php 와 내가 mysite.com/users에 URL을 변경하면 나는 새 사용자로 로그인 한 사실에있어 볼, 그래서
Auth::loginUsingId(2)
w 수
그런
정의 orked.내가 뭘 잘못하고 있니? 또는 어떻게해야합니까?
'''Auth :: logout()'''없이 사용해 볼 수 있습니까? Auth :: logout()''과''Auth :: loginUsingId()'''는 같은 요청으로 호출 될 수 없다. – bryantebeek
'Auth :: logout()'이 없으면 충돌이 발생하지 않지만 관리자 인 것처럼 계속 로그인 한 사용자를 전환하지 않습니다. : – Jester
동일한 문제가 발생했습니다. Auth :: loginUsingId 대신 Auth :: login을 사용하면 실제로 새 사용자와 다시 로그인하게됩니다.하지만이 방법들과 어떻게 관리자에게 돌아갈 지에 대한 차이점은 무엇입니까? – Victor