diff --git a/app/controllers/session_controller.rb b/app/controllers/session_controller.rb
index e762af5ec..371a7fd4d 100644
--- a/app/controllers/session_controller.rb
+++ b/app/controllers/session_controller.rb
@@ -55,6 +55,14 @@ class SessionController < ApplicationController
     render json: {result: "ok"}
   end
 
+  def current
+    if current_user.present?
+      render_serialized(current_user, CurrentUserSerializer)
+    else
+      render nothing: true, status: 404
+    end
+  end
+
   def destroy
     reset_session
     log_off_user
diff --git a/config/routes.rb b/config/routes.rb
index c22ac90fb..bc838c27b 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -113,6 +113,7 @@ Discourse::Application.routes.draw do
     end
   end
 
+  get "session/current" => "session#current"
   get "session/csrf" => "session#csrf"
   get "composer-messages" => "composer_messages#index"
 
diff --git a/spec/controllers/session_controller_spec.rb b/spec/controllers/session_controller_spec.rb
index 98775b043..4959351ce 100644
--- a/spec/controllers/session_controller_spec.rb
+++ b/spec/controllers/session_controller_spec.rb
@@ -199,4 +199,24 @@ describe SessionController do
 
   end
 
+  describe '.current' do
+    context "when not logged in" do
+      it "retuns 404" do
+        xhr :get, :current
+        response.should_not be_success
+      end
+    end
+
+    context "when logged in" do
+      let!(:user) { log_in }
+
+      it "returns the JSON for the user" do
+        xhr :get, :current
+        response.should be_success
+        json = ::JSON.parse(response.body)
+        json['current_user'].should be_present
+        json['current_user']['id'].should == user.id
+      end
+    end
+  end
 end