File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,5 +4,6 @@ module.exports = Reflux.createActions([
44 'login' ,
55 'register' ,
66 'logout' ,
7- 'updateProfile'
7+ 'updateProfile' ,
8+ 'refreshUser'
89] )
Original file line number Diff line number Diff line change @@ -4,6 +4,8 @@ var ReactRouter = require('react-router')
44var RouteHandler = ReactRouter . RouteHandler
55var request = require ( 'superagent' )
66
7+ var AuthActions = require ( '../Actions/AuthActions' )
8+
79var AuthStore = require ( '../Stores/AuthStore' )
810
911var apiUrl = require ( '../../../config' ) . apiUrl
@@ -43,7 +45,7 @@ module.exports = React.createClass({
4345
4446 var user = JSON . parse ( localStorage . getItem ( 'user' ) )
4547 if ( user != null ) {
46- user . Planets . forEach ( fetchPlanet )
48+ AuthActions . refreshUser ( )
4749 return
4850 }
4951 this . transitionTo ( 'login' )
@@ -55,9 +57,9 @@ module.exports = React.createClass({
5557 if ( res == null || res . status == null ) {
5658 return
5759 }
58-
60+ var user
5961 if ( res . status === 'loggedIn' || res . status === 'registered' ) {
60- var user = res . data
62+ user = res . data
6163 var planet = user . Planets . length > 0 ? user . Planets [ 0 ] : null
6264 if ( planet == null ) {
6365 this . transitionTo ( 'user' , { userName : user . name } )
@@ -72,6 +74,13 @@ module.exports = React.createClass({
7274 this . transitionTo ( 'login' )
7375 return
7476 }
77+
78+ if ( res . status === 'userRefreshed' ) {
79+ console . log ( 'refreshed' )
80+ user = res . data
81+ user . Planets . forEach ( fetchPlanet )
82+ return
83+ }
7584 } ,
7685 render : function ( ) {
7786 // Redirect Login state
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ var AuthStore = Reflux.createStore({
1212 this . listenTo ( AuthActions . register , this . register )
1313 this . listenTo ( AuthActions . logout , this . logout )
1414 this . listenTo ( AuthActions . updateProfile , this . updateProfile )
15+ this . listenTo ( AuthActions . refreshUser , this . refreshUser )
1516 } ,
1617 // Reflux Store
1718 login : function ( input ) {
@@ -58,6 +59,30 @@ var AuthStore = Reflux.createStore({
5859 } )
5960 } . bind ( this ) )
6061 } ,
62+ refreshUser : function ( ) {
63+ request
64+ . get ( apiUrl + 'auth/user' )
65+ . set ( {
66+ Authorization : 'Bearer ' + localStorage . getItem ( 'token' )
67+ } )
68+ . end ( function ( err , res ) {
69+ if ( err ) {
70+ console . error ( err )
71+ if ( res . status === 401 || res . status === 403 ) {
72+ AuthActions . logout ( )
73+ }
74+ return
75+ }
76+
77+ var user = res . body
78+ localStorage . setItem ( 'user' , JSON . stringify ( user ) )
79+
80+ this . trigger ( {
81+ status : 'userRefreshed' ,
82+ data : user
83+ } )
84+ } . bind ( this ) )
85+ } ,
6186 logout : function ( ) {
6287 localStorage . removeItem ( 'token' )
6388 localStorage . removeItem ( 'user' )
You can’t perform that action at this time.
0 commit comments