gsk gsk - 1 year ago 93
AngularJS Question

Laravel automatically logged out after few seconds?

I am developing web application using Laravel 5 and angularJs with RESTFUL apis.


to authentication purpose. My problem is after sending few request simultaneously,system automatically logged out and sending 401 exception from laravel side.

API base controller:

class ApiController extends BaseController {

use DispatchesCommands, ValidatesRequests;

function __construct() {



class APIMiddleware {

* Handle an incoming request.
* @param Request $request
* @param Closure $next
* @return mixed
public function handle($request, Closure $next) {
if (!Auth::check()) {
abort(401, "Unauthorized");
return $next($request);


Log in controller

public function login(LoginRequest $request) {
if (Auth::check()) {

if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')], $request->input('is_remember'))) {
return array(true);
} else {
abort(401, "Invalid email & password");

After few request gone, Server log out and sends 401 exception. I am stuck with this issue.

Answer Source

Now I'm not 100% sure (and depending on your set-up I can't even say I'm 90% sure) But after changing my session_driver from file to database I seem to have fixed this issue - that is if it's the same issue.

I think do the samething as you with my app - that is on a start up of a page, I'm making 6 request (this is development and I will be changing it to one so please don't cry). If I load this page, it works with about 3 or 4 request, then the other 2-3 come back with a unauthorised response. It also only happens on request that require middleware => auth.

So here's my theory to why this is happening: Because, by default, sessions are saved in a file - making multiple requests at once means that file is being opened 6 times at once - probably messing it up (depending on your machine). Therefore changing the session to a database, which is designed to have thousands of requests at once, works!


  1. Go to your .env file and change SESSION_DRIVER=file to SESSION_DRIVER=database.
  2. Next you will need to create a session migration: php artisan session:table.
  3. Now composer dump-autoload for good practice.
  4. Finally migrate (php artisan migrate).

NOTE: I'm not 100% sure though if this is the case, but for me this solution worked. I am also aware that this question is really old, but both the developers I work with and myself have had this issue and there doesn't seem to be a solution, so Just though I'd post this.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download