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

手机网站设计模板有什么网站可以做推广

手机网站设计模板,有什么网站可以做推广,专业app开发制作公司,阿里云可以做网站吗欢迎来到一场技术与幽默交织的冒险#xff01;今天#xff0c;我们将跳进 Spring Boot 的世界#xff0c;探索如何通过 用户名、手机号、邮箱 等多种方式实现登录。想象一下#xff0c;用户在登录时可以随心所欲地选择——就像你今天早上纠结到底是要喝美式咖啡还是拿铁今天我们将跳进 Spring Boot 的世界探索如何通过 用户名、手机号、邮箱 等多种方式实现登录。想象一下用户在登录时可以随心所欲地选择——就像你今天早上纠结到底是要喝美式咖啡还是拿铁而我们要做的就是为他们提供这些选择确保他们都能毫无阻碍地进入我们的系统。 目标 用一种轻松而富有趣味的方式带你构建一个支持多种登录方式的 Spring Boot 项目好了系好安全带让我们开始这段奇妙的代码之旅。 一、需求分析 首先让我们明白我们要做什么。如果你还记得那些老式网站登录方式非常单一只允许使用用户名登录且密码必须是8个字符的 “password123” 这种经典组合。好吧时代已经不同了现在的人们懒得记用户名和密码他们更愿意使用手机、邮箱甚至脸书、微信等社交账号来登录。为什么 因为每个人都有点“懒得输入太多字”的心理。 因此我们的目标很明确——让用户能有更多的选择方式来登录 用户名 密码这是经典款手机号 密码这就很潮流了邮箱 密码一看就很高端 这就像在餐厅点菜——我们提供多样化的菜单用户随便选爱吃啥点啥 二、搭建你的基础工程项目配置 没有基础设施的建筑就是一场灾难而没有配置文件的 Spring Boot 项目就是——废的。所以第一步我们要确保项目的所有配置正确无误。 在你的 pom.xml 文件中加入我们即将用到的一些核心依赖。包括 Spring Security因为我们要玩登录认证嘛、JPA因为我们要有地方存储用户信息以及 MySQL 数据库的连接驱动。 dependencies!-- Spring Boot Security 依赖用于管理我们的登录和认证 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependency!-- Spring Boot Data JPA 依赖用来进行数据库操作 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependency!-- Spring Boot Web 依赖用来处理 Web 请求 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- MySQL Connector 依赖毕竟数据还是要放进数据库的 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!-- Lombok 用来减少代码量让我们不用再写那些烦人的 getter/setter --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency /dependencies好了既然我们已经有了正确的配置依赖现在就像是我们已经准备好了一杯现磨咖啡接下来该享受喝咖啡的过程了 三、数据库设计让用户信息有个家 每个登录系统都需要一个地方存储用户信息否则它就像你早上出门忘了带钥匙一样尴尬。我们要创建一个用户表来保存用户名、手机号、邮箱以及密码。这里我们使用 JPA 来简化数据库操作不必再写那些琐碎的 SQL 语句。 Entity Table(name users) Data public class User {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;private String username; // 用户名private String password; // 密码重要的东西当然要加密保存private String email; // 邮箱private String phoneNumber; // 手机号 }你可能会问为什么不加个字段来存储用户的昵称、性别、兴趣爱好嗯那确实也是个不错的想法但我们今天的重点是登录系统——所以先忍一忍别跑偏了。 四、用户存储库我们需要一些查询方式 数据库表已经有了但我们还需要写一些代码来查询这些用户信息。为此我们需要创建一个存储库类用于根据用户名、手机号或者邮箱来查找用户。 public interface UserRepository extends JpaRepositoryUser, Long {OptionalUser findByUsername(String username);OptionalUser findByEmail(String email);OptionalUser findByPhoneNumber(String phoneNumber); }瞧这就是我们数据层的三剑客findByUsername、findByEmail 和 findByPhoneNumber。有了它们我们可以方便地从数据库中查询到用户。 五、用户认证服务让 Spring Security 成为我们的好帮手 接下来我们要告诉 Spring Security 如何根据不同的登录信息来加载用户。这部分代码就像是一道考题告诉系统“嘿如果用户输入了个手机号或者邮箱你该如何处理” Service public class CustomUserDetailsService implements UserDetailsService {Autowiredprivate UserRepository userRepository;Overridepublic UserDetails loadUserByUsername(String loginInput) throws UsernameNotFoundException {OptionalUser userOpt;// 判断输入的登录信息类型来确定是邮箱、手机号还是用户名if (loginInput.contains()) {// 邮箱登录userOpt userRepository.findByEmail(loginInput);} else if (loginInput.matches(\\d)) {// 手机号登录userOpt userRepository.findByPhoneNumber(loginInput);} else {// 用户名登录userOpt userRepository.findByUsername(loginInput);}// 如果用户不存在抛出异常User user userOpt.orElseThrow(() - new UsernameNotFoundException(用户不存在));// 返回 Spring Security 所需的 UserDetails 对象return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), new ArrayList());} }这个类做的事情就像是一个门卫不管用户输入的是用户名、邮箱还是手机号都会验证一遍确保用户是真实存在的。 六、密码加密不要让用户的密码变成人人可知的小秘密 安全问题非常重要如果我们把密码明文存储那就相当于把家里的钥匙放在门口的地垫下面绝对是个坏主意。幸运的是Spring Security 自带了密码加密支持我们可以使用 BCryptPasswordEncoder 来加密用户密码。 Bean public PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder(); }然后在用户注册时对密码进行加密后再存入数据库 Service public class UserService {Autowiredprivate UserRepository userRepository;Autowiredprivate PasswordEncoder passwordEncoder;public void registerUser(User user) {// 密码加密user.setPassword(passwordEncoder.encode(user.getPassword()));userRepository.save(user);} }有了这个小魔法所有密码都会以加密形式存储即便有人黑进了数据库也只能看到一串毫无意义的字符。 七、Spring Security 配置别忘了这位主角 一部电影怎么能没有导演而我们的导演就是 Spring Security 的配置类。我们将在这里配置登录逻辑告诉系统如何处理不同的登录方式。 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Autowiredprivate CustomUserDetailsService userDetailsService;Autowiredprivate PasswordEncoder passwordEncoder;Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {// 配置认证方式使用我们自定义的 UserDetailsService 和密码加密方式auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);}Overrideprotected void configure(HttpSecurity http) throws Exception {// 设置允许哪些 URL 可以被匿名访问http.csrf().disable().authorizeRequests().antMatchers(/login, /register).permitAll() // 允许登录和注册页面被访问.anyRequest().authenticated() // 其他页面都需要认证.and().formLogin().loginPage(/login) // 设置自定义的登录页面.defaultSuccessUrl(/home, true) // 登录成功后跳转的页面.permitAll().and().logout().permitAll();} }在这段配置中我们告诉 Spring Security 使用我们自定义的 CustomUserDetailsService 来处理登录请求。我们还设置了登录页面和成功后的重定向页面显得很专业有木有 八、最后的话为用户提供选择登录就像选咖啡一样简单 现在我们已经成功搭建了一个支持多种方式登录的系统。不论是使用用户名、手机号还是邮箱用户都可以自由选择就像他们早晨选择喝哪种咖啡一样简单。而你作为这家“咖啡店”的老板成功地提供了更多的便利和选择 所以下次当你看到用户轻松登录时可以骄傲地拍拍自己的肩膀毕竟你让这个世界的登录系统变得更加多样化了。 Ps如果用户抱怨登录总是出错请告诉他们密码不能用“123456”那样实在太“平庸”了点
http://www.hkea.cn/news/14526822/

相关文章:

  • 餐饮食材配送网站开发企划书济南网络电视台
  • 网站logo模板福州网络营销
  • 网站开发相关书籍自己如何做微信小程序
  • 创建网站代码信阳网站优化
  • 电子商务网站设计要求公司网站突然打不开
  • 关键词优化分析工具seo北京公司
  • 扁平式网站seo 内链合肥建设集团招聘信息网站
  • 做网站的空间费用要多少wordpress数据库e r图
  • 哈尔滨建设银行网站首页顺德网站优化
  • 免费网站自助建站系统建设商城类的网站要多少钱
  • 网站建设遵循的原则关于建设网站的经费请示
  • 服务好的高端网站建设企业中国域名网站排名
  • 微信手机网站建设wordpress网建公司模板
  • 软件开发培训学校哪的好系统优化方法
  • 洛阳数码大厦做网站的在几楼黄浦区网站建设
  • 徐州网站设计制作建设app软件开发sh365
  • 劳务公司网站建设做食品网站有哪些内容
  • 活泼风格的网站html网站源码
  • 人工智能网站应怎么做网站建设的公司怎么做
  • 网站最新点击量排名网站制作的常见布局
  • 建站服务器北京专业响应式网站建设
  • 营销型网站哪家做的好wordpress直播平台
  • 云服务器和网站备案吗手机直播软件
  • 山东经济建设网站济南seo的排名优化
  • 各网站封面尺寸h5网站怎么做的
  • 专门做橱柜衣柜效果图的网站免费网站后台模板下载
  • 两学一做考试网站装修做劳务去哪个网站找工地
  • 刘强东自己做网站如何进行网络推广和宣传
  • 咸宁市做网站WordPress修改模板相对路径
  • 不花钱网站怎么做asp.net mvc5网站开发之美