网站百度收录要多久,建设项目竣工环保验收公示网站,怎么网站制作,淮南发布网文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序#xff08;小蔡coding#xff09; 代码参考数据库参考源码获取 前言 #x1f497;博主介绍#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者小蔡coding 代码参考数据库参考源码获取 前言 博主介绍✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌ 精彩专栏 推荐订阅 2023-2024年最值得选的微信小程序毕业设计选题大全100个热门选题推荐✅ 2023-2024年最值得选的Java毕业设计选题大全500个热门选题推荐✅ Java精品实战案例《500套》 微信小程序项目精品案例《500套》 文末获取源码数据库 感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以给我留言咨询希望帮助更多的人 具体实现截图
主要功能: 基于php宠物爱好者交流平台
系统分为用户管理员两个角色
用户功能 1用户登录注册网站系统 2用户查看宠物列表和宠物介绍详情信息 3用户查看在线交流发布回复 4用户发布交流信息 5用户查看资源下载资源发布宠物相关资源信息 6用户个人中心修改个人资料
管理员功能 1管理员登录系统 2狗狗信息管理添加删除狗宠物信息 3喵咪信息管理添加删除喵咪宠物信息 4用户交流管理 5资源分享管理 6会员管理 7友情链接管理 8联系我们管理 9管理员修改密码个人资料
php版本 5.3以上 开发工具 notepad,sublime,phpstorm都可 数据库: mysql 服务器: apache 集成环境 phpstudy 详细技术HTMLCSSJSPHPMYSQLPhpStudy
论文参考
详细视频演示
请联系我获取更详细的演示视频
为什么选择我
自己的网站 网站上传的项目均为博主自己收集和开发的质量都可以得到保障适合自己懂一点程序开发的同学使用
自己的小程序小蔡coding 为了方便同学们使用我开发了小程序版的名字叫小蔡coding。同学们可以通过小程序快速搜索和定位到自己想要的程序
代码参考
IgnoreAuth
PostMapping(value /login)
public R login(String username, String password, String captcha, HttpServletRequest request) {UsersEntity user userService.selectOne(new EntityWrapperUsersEntity().eq(username, username));if(usernull || !user.getPassword().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(user.getId(),username, users, user.getRole());return R.ok().put(token, token);
}Overridepublic String generateToken(Long userid,String username, String tableName, String role) {TokenEntity tokenEntity this.selectOne(new EntityWrapperTokenEntity().eq(userid, userid).eq(role, role));String token CommonUtil.getRandomString(32);Calendar cal Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.HOUR_OF_DAY, 1);if(tokenEntity!null) {tokenEntity.setToken(token);tokenEntity.setExpiratedtime(cal.getTime());this.updateById(tokenEntity);} else {this.insert(new TokenEntity(userid,username, tableName, role, token, cal.getTime()));}return token;}/*** 权限(Token)验证*/
Component
public class AuthorizationInterceptor implements HandlerInterceptor {public static final String LOGIN_TOKEN_KEY Token;Autowiredprivate TokenService tokenService;Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//支持跨域请求response.setHeader(Access-Control-Allow-Methods, POST, GET, OPTIONS, DELETE);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Credentials, true);response.setHeader(Access-Control-Allow-Headers, x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization);response.setHeader(Access-Control-Allow-Origin, request.getHeader(Origin));// 跨域时会首先发送一个OPTIONS请求这里我们给OPTIONS请求直接返回正常状态if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {response.setStatus(HttpStatus.OK.value());return false;}IgnoreAuth annotation;if (handler instanceof HandlerMethod) {annotation ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);} else {return true;}//从header中获取tokenString token request.getHeader(LOGIN_TOKEN_KEY);/*** 不需要验证权限的方法直接放过*/if(annotation!null) {return true;}TokenEntity tokenEntity null;if(StringUtils.isNotBlank(token)) {tokenEntity tokenService.getTokenEntity(token);}if(tokenEntity ! null) {request.getSession().setAttribute(userId, tokenEntity.getUserid());request.getSession().setAttribute(role, tokenEntity.getRole());request.getSession().setAttribute(tableName, tokenEntity.getTablename());request.getSession().setAttribute(username, tokenEntity.getUsername());return true;}PrintWriter writer null;response.setCharacterEncoding(UTF-8);response.setContentType(application/json; charsetutf-8);try {writer response.getWriter();writer.print(JSONObject.toJSONString(R.error(401, 请先登录)));} finally {if(writer ! null){writer.close();}}
// throw new EIException(请先登录, 401);return false;}
}数据库参考
-- ----------------------------
-- Table structure for token
-- ----------------------------
DROP TABLE IF EXISTS token;
CREATE TABLE token (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键,userid bigint(20) NOT NULL COMMENT 用户id,username varchar(100) NOT NULL COMMENT 用户名,tablename varchar(100) DEFAULT NULL COMMENT 表名,role varchar(100) DEFAULT NULL COMMENT 角色,token varchar(200) NOT NULL COMMENT 密码,addtime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 新增时间,expiratedtime timestamp NOT NULL DEFAULT 0000-00-00 00:00:00 COMMENT 过期时间,PRIMARY KEY (id) USING BTREE
) ENGINEInnoDB AUTO_INCREMENT27 DEFAULT CHARSETutf8 ROW_FORMATCOMPACT COMMENTtoken表;-- ----------------------------
-- Records of token
-- ----------------------------
INSERT INTO token VALUES (9, 23, cd01, xuesheng, 学生, al6svx5qkei1wljry5o1npswhdpqcpcg, 2023-02-23 21:46:45, 2023-03-15 14:01:36);
INSERT INTO token VALUES (10, 11, xh01, xuesheng, 学生, fahmrd9bkhqy04sq0fzrl4h9m86cu6kx, 2023-02-27 18:33:52, 2023-03-17 18:27:42);
INSERT INTO token VALUES (11, 17, ch01, xuesheng, 学生, u5km44scxvzuv5yumdah2lhva0gp4393, 2023-02-27 18:46:19, 2023-02-27 19:48:58);
INSERT INTO token VALUES (12, 1, admin, users, 管理员, h1pqzsb9bldh93m92j9m2sljy9bt1wdh, 2023-02-27 19:37:01, 2023-03-17 18:23:02);
INSERT INTO token VALUES (13, 21, xiaohao, shezhang, 社长, zdm7j8h1wnfe27pkxyiuzvxxy27ykl2a, 2023-02-27 19:38:07, 2023-03-17 18:25:20);
INSERT INTO token VALUES (14, 27, djy01, xuesheng, 学生, g3teq4335pe21nwuwj2sqkrpqoabqomm, 2023-03-15 12:56:17, 2023-03-15 14:00:16);
INSERT INTO token VALUES (15, 29, dajiyue, shezhang, 社长, 0vb1x9xn7riewlp5ddma5ro7lp4u8m9j, 2023-03-15 12:58:08, 2023-03-15 14:03:48);源码获取
文章下方名片联系我即可~ 大家点赞、收藏、关注、评论啦 、查看获取联系方式 精彩专栏推荐订阅在下方专栏 Java精品实战案例《500套》 微信小程序项目精品案例《500套》