当前位置: 首页 > news >正文

网站建设大熊猫点搜宿迁企业做网站

网站建设大熊猫点搜,宿迁企业做网站,网页设计制作与代码整体素材,怎么样在网上建设网站挣钱个人资料管理与展示是博客平台的重要功能之一。本文将通过设计思路、技术实现和代码示例#xff0c;详细讲解如何构建出色的个人资料管理与展示功能。结合CodeInsight平台的实践案例#xff0c;帮助您深入了解个人资料管理与展示的设计原则和技术实现。 一、设计思路 在设计…个人资料管理与展示是博客平台的重要功能之一。本文将通过设计思路、技术实现和代码示例详细讲解如何构建出色的个人资料管理与展示功能。结合CodeInsight平台的实践案例帮助您深入了解个人资料管理与展示的设计原则和技术实现。 一、设计思路 在设计个人资料管理与展示功能时我们需要考虑以下几点 保护用户隐私只有登录用户本人可以查看和修改自己的个人资料。界面友好个人资料展示界面应清晰、简洁便于用户查看和理解。便捷操作用户可以轻松地修改个人资料系统应迅速响应用户操作提供流畅的体验。 二、技术实现 在CodeInsight平台中我们采用Spring Boot作为后端框架Vue3作为前端框架实现了个人资料管理与展示功能。我们通过Spring Security实现权限控制确保只有登录用户本人可以查看和修改自己的个人资料。 1.查看个人资料 首先我们在UserController中创建一个getProfile接口用于获取当前登录用户的个人资料。通过AuthenticationPrincipal注解我们可以获取到当前登录用户的UserDetails对象。 GetMapping(/profile) public ResponseEntity? getProfile(AuthenticationPrincipal UserDetails userDetails) {User user userRepository.findByUsername(userDetails.getUsername());return ResponseEntity.ok(user); }接下来我们在Vue前端创建一个个人资料展示页面通过调用getProfile接口获取用户资料并展示给用户。 templatediv classprofileh2{{ user.username }}s Profile/h2pEmail: {{ user.email }}/ppRegistered At: {{ user.createdAt }}/p/div /templatescript export default {data() {return {user: {},};},async mounted() {const response await this.$http.get(/user/profile);this.user response.data;}, }; /script2.修改个人资料 我们在UserController中创建一个updateProfile接口用于处理用户修改个人资料的请求。同样通过AuthenticationPrincipal注解我们可以获取到当前登录用户的UserDetails对象。 PutMapping(/profile) public ResponseEntity? updateProfile(Valid RequestBody UserProfileForm userProfileForm, AuthenticationPrincipal UserDetails userDetails) {User user userRepository.findByUsername(userDetails.getUsername());// 更新用户资料// ...userRepository.save(user);return ResponseEntity.ok(Profile updated successfully.); }在Vue前端我们创建一个修改个人资料的表单用户填写表单后调用updateProfile接口提交修改。 templatediv classupdate-profileh2Update Profile/h2form submit.preventsubmitdiv classform-grouplabel foremailEmail/labelinput typeemail v-modeluserProfileForm.email idemail required //divdiv classform-grouplabel fornicknameNickname/labelinput typetext v-modeluserProfileForm.nickname idnickname required //divbutton typesubmitUpdate Profile/button/form/div /templatescript export default {data() {return {userProfileForm: {email: ,nickname: ,},};},async submit() {try {await this.$http.put(/user/profile, this.userProfileForm);this.$router.push({ name: Profile });} catch (error) {// Handle error}}, }; /script上述代码中我们创建了一个包含Email和Nickname字段的表单。用户填写表单并点击提交按钮后会触发submit方法。在submit方法中我们调用updateProfile接口/user/profile提交修改。如果更新成功页面将跳转至个人资料展示页面。 三、补充 除了上述的基本信息修改我们还可以为用户提供更丰富的个人资料管理选项例如 1.修改头像 我们可以允许用户上传自定义头像以提高个性化体验。在前端我们需要添加一个文件输入框以便用户选择图片并调用接口上传图片。 template!-- ... --div classform-grouplabel foravatarAvatar/labelinput typefile changeonFileChange idavatar //div!-- ... -- /templatescript export default {// ...methods: {onFileChange(event) {const file event.target.files[0];const formData new FormData();formData.append(avatar, file);this.$http.post(/user/profile/avatar, formData);},}, }; /script在后端我们需要处理文件上传请求并将头像图片存储在服务器或第三方存储服务上。同时我们需要更新用户记录以保存头像图片的URL。 PostMapping(/profile/avatar) public ResponseEntity? uploadAvatar(RequestParam(avatar) MultipartFile file, AuthenticationPrincipal UserDetails userDetails) {// 保存文件并返回文件URLString avatarUrl fileStorageService.saveFile(file);User user userRepository.findByUsername(userDetails.getUsername());user.setAvatarUrl(avatarUrl);userRepository.save(user);return ResponseEntity.ok(Avatar updated successfully.); }2.修改密码 允许用户修改密码可以增强安全性。在前端我们需要添加一个修改密码表单并调用接口提交新旧密码 template!-- ... --div classchange-passwordh3Change Password/h3form submit.preventchangePassworddiv classform-grouplabel forcurrentPasswordCurrent Password/labelinput typepassword v-modelpasswordForm.currentPassword idcurrentPassword required //divdiv classform-grouplabel fornewPasswordNew Password/labelinput typepassword v-modelpasswordForm.newPassword idnewPassword required //divbutton typesubmitChange Password/button/form/div!-- ... -- /templatescript export default {// ...data() {return {passwordForm: {currentPassword: ,newPassword: ,},};},methods: {async changePassword() {try {await this.$http.post(/user/profile/password, this.passwordForm);// Handle success} catch (error) {// Handle error}},}, }; /script在后端我们需要验证用户输入的当前密码如果验证通过才更新密码。 RestController RequestMapping(/user/profile) public class UserProfileController {Autowiredprivate UserRepository userRepository;Autowiredprivate BCryptPasswordEncoder bCryptPasswordEncoder;PostMapping(/password)public ResponseEntity? changePassword(Valid RequestBody ChangePasswordForm changePasswordForm, AuthenticationPrincipal UserDetails userDetails) {User user userRepository.findByUsername(userDetails.getUsername());if (bCryptPasswordEncoder.matches(changePasswordForm.getCurrentPassword(), user.getPassword())) {user.setPassword(bCryptPasswordEncoder.encode(changePasswordForm.getNewPassword()));userRepository.save(user);return ResponseEntity.ok(Password changed successfully.);} else {return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(Current password is incorrect.);}} }以上代码展示了如何使用Vue前端框架创建修改密码表单并通过Spring Boot后端接口实现密码修改功能。这样的设计既简洁又易于理解有助于提高用户体验。
http://www.ho-use.cn/article/10812346.html

相关文章:

  • 无锡建设信息中心网站郑州网站建设公司
  • 淘客网站怎么做首页网站规划 时间
  • 重庆九龙坡区哪里有做网站的网站建设如何设定关键字
  • 包头网站网站建设网站建设板块免费下载
  • 吉林智能网站建设企业广州五羊建设官方网站
  • 收录网站工具做瞹瞹嗳网站
  • 企业设计网站系统网站备案幕布拍照
  • 张家界有没有做网站的公司推广管理
  • 毕业设计网站用什么做外包公司的人好跳槽吗
  • 做网站设计的公司柳州wordpress不响应
  • 旅游公司网站开发与实现网站服务器异常是什么意思
  • 网站主机租用多少钱常州网站建设公司教程
  • 保定网站制作推广dedecms网站的源码如何安装
  • 网站删除代码模板网站 可以做推广吗
  • 电子政务与网站建设意义中小企业网络营销案例
  • 网站开发软件开发怎么样国际军事最新军事新闻
  • 简单的wordpress模板seo排名工具给您好的建议
  • dede如何做网站产品外观工业设计公司
  • 写作网站好吗网上做代销上哪个网站
  • 怎样做医院网站南宁seo营销推广
  • 网站模板 瀑布流DW做的网页用网站打不开
  • 网站后台怎么建设2017国办网站建设规范
  • 网站建设包含的内容佛山公司网站推广外包服务
  • 深圳安嘉建设有限公司网站舞阳专业做网站
  • 质量好网站建设费用北京seo的排名优化
  • 深圳比邻网站建设深汕特别合作区房价最新消息
  • 万网空间上传网站吗免费创建单页网站
  • app展示网站模板html上海注销公司需要什么资料和流程
  • 分销系统网站建设建筑官方网站
  • 苏州安岭网站建设公司做网站后期需要什么费用