mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-14 02:06:29 +00:00
改善:立ち上げたらUserの情報(PlanetのSnippetsなどを含めた)を検証して、データを全部リロードする
This commit is contained in:
@@ -4,5 +4,6 @@ module.exports = Reflux.createActions([
|
||||
'login',
|
||||
'register',
|
||||
'logout',
|
||||
'updateProfile'
|
||||
'updateProfile',
|
||||
'refreshUser'
|
||||
])
|
||||
|
||||
@@ -4,6 +4,8 @@ var ReactRouter = require('react-router')
|
||||
var RouteHandler = ReactRouter.RouteHandler
|
||||
var request = require('superagent')
|
||||
|
||||
var AuthActions = require('../Actions/AuthActions')
|
||||
|
||||
var AuthStore = require('../Stores/AuthStore')
|
||||
|
||||
var apiUrl = require('../../../config').apiUrl
|
||||
@@ -43,7 +45,7 @@ module.exports = React.createClass({
|
||||
|
||||
var user = JSON.parse(localStorage.getItem('user'))
|
||||
if (user != null) {
|
||||
user.Planets.forEach(fetchPlanet)
|
||||
AuthActions.refreshUser()
|
||||
return
|
||||
}
|
||||
this.transitionTo('login')
|
||||
@@ -55,9 +57,9 @@ module.exports = React.createClass({
|
||||
if (res == null || res.status == null) {
|
||||
return
|
||||
}
|
||||
|
||||
var user
|
||||
if (res.status === 'loggedIn' || res.status === 'registered') {
|
||||
var user = res.data
|
||||
user = res.data
|
||||
var planet = user.Planets.length > 0 ? user.Planets[0] : null
|
||||
if (planet == null) {
|
||||
this.transitionTo('user', {userName: user.name})
|
||||
@@ -72,6 +74,13 @@ module.exports = React.createClass({
|
||||
this.transitionTo('login')
|
||||
return
|
||||
}
|
||||
|
||||
if (res.status === 'userRefreshed') {
|
||||
console.log('refreshed')
|
||||
user = res.data
|
||||
user.Planets.forEach(fetchPlanet)
|
||||
return
|
||||
}
|
||||
},
|
||||
render: function () {
|
||||
// Redirect Login state
|
||||
|
||||
@@ -12,6 +12,7 @@ var AuthStore = Reflux.createStore({
|
||||
this.listenTo(AuthActions.register, this.register)
|
||||
this.listenTo(AuthActions.logout, this.logout)
|
||||
this.listenTo(AuthActions.updateProfile, this.updateProfile)
|
||||
this.listenTo(AuthActions.refreshUser, this.refreshUser)
|
||||
},
|
||||
// Reflux Store
|
||||
login: function (input) {
|
||||
@@ -58,6 +59,30 @@ var AuthStore = Reflux.createStore({
|
||||
})
|
||||
}.bind(this))
|
||||
},
|
||||
refreshUser: function () {
|
||||
request
|
||||
.get(apiUrl + 'auth/user')
|
||||
.set({
|
||||
Authorization: 'Bearer ' + localStorage.getItem('token')
|
||||
})
|
||||
.end(function (err, res) {
|
||||
if (err) {
|
||||
console.error(err)
|
||||
if (res.status === 401 || res.status === 403) {
|
||||
AuthActions.logout()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
var user = res.body
|
||||
localStorage.setItem('user', JSON.stringify(user))
|
||||
|
||||
this.trigger({
|
||||
status: 'userRefreshed',
|
||||
data: user
|
||||
})
|
||||
}.bind(this))
|
||||
},
|
||||
logout: function () {
|
||||
localStorage.removeItem('token')
|
||||
localStorage.removeItem('user')
|
||||
|
||||
Reference in New Issue
Block a user