在redux存储区或本地存储区中将用户信息存储在哪里?

时间:2019-11-21 08:36:52

标签: reactjs authentication redux react-redux rbac

我在徘徊登录后如何存储用户信息?

将所有信息存储在本地存储或redux存储中是个好主意吗?

成功登录API后,返回一个带有用户角色和权限以及其他信息的大对象。

我是react-redux的新手,请帮忙!

谢谢!

2 个答案:

答案 0 :(得分:3)

将用户信息存储在redux存储中。重新加载应用程序后,如果要保留它(我不建议这样做,请参见此答案中的详细信息),可以使用import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import javax.annotation.PostConstruct; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import redis.clients.jedis.exceptions.JedisException; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; import com.citruspay.prepaid.common.cache.dao.ProfileInfoCacheDao; import com.citruspay.prepaid.common.cache.entity.ProfileInfoCache; import com.citruspay.prepaid.common.cache.factory.DaoCacheFactory; import com.citruspay.prepaid.common.user.process.UserInfoServiceImpl; import com.spikeify.ResultSet; @Service public class ProfileInfoCacheService { @Autowired UserInfoServiceImpl userService; @Autowired DaoCacheFactory<ProfileInfoCacheDao> daoCacheFactory; @PostConstruct public void init() { ProfileInfoCacheDao profileInfoCacheDao = daoCacheFactory.getDaoForRead(ProfileInfoCacheDao.class); profileInfoCacheDao.init(); } Logger logger = LoggerFactory.getLogger(ProfileInfoCacheService.class);

但这实际上取决于您使用哪种身份验证。通常,您应该仅使用(并保留)一些身份验证令牌(而不是所有用户信息)。您可以将该令牌存储在cookie中,并在每次应用程序加载时使用它(用于后端请求)获取真实的用户信息(然后将其存储在redux存储中)。

答案 1 :(得分:0)

我们可以将所有常规数据(例如城市和国家/地区列表)存储在本地存储中。如果要注销用户,请在用户关闭选项卡时使用会话存储。因此,您可以将用户信息存储在会话存储或cookie中。
检查以下链接以了解有关本地存储和会话存储的区别。 Link