我在徘徊登录后如何存储用户信息?
将所有信息存储在本地存储或redux存储中是个好主意吗?
成功登录API后,返回一个带有用户角色和权限以及其他信息的大对象。
我是react-redux的新手,请帮忙!
谢谢!
答案 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