为了防止概念冲突 UserDetails更名为UserSnapshot