同步操作将从 LIdark/weapp-fangxianyu 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
一款高质量仿闲鱼开源交易平台。
Power By 微信小程序
,JWT
, Java8
,Maven
,SpringBoot
,SpringCloud
,MySQL
,Redis
,RabbitMQ
,Docker
后端基于Spring Cloud搭建,拆分为认证
,用户
,消息
,商品
,服务发现
,网关
6个服务
然而并不能快速开始,首先你得有小程序的appid。需要先申请小程序账号和下载小程序开发工具,步骤可以参考官方教程。注册完成后会拿到appid和secret,在auth-service/src/main/resources/application.yml
中配置你的appid和secret。
#写入你的小程序信息
wx:
miniapp:
appid: #微信小程序的appid
secret: #微信小程序的Secret
msgDataFormat: JSON
打开刚下载好的小程序开发工具,创建一个新项目。然后把wx-front中的所有文件覆盖到你刚创建的小程序项目目录中。由于小程序默认服务端只能是HTTPS并且是ICP备案过的域名,不方便开发,在小程序开发工具的设置/项目设置
中把不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书
勾上。
后端用docker-compose快速部署,确保你安装了docker和docker-compose。(参考:Ubuntu安装Docker,安装docker-compose)。
$ git clone git@github.com:nnkwrik/weapp-fangxianyu.git
$ cd /weapp-fangxianyu
maven打包
mvn clean package -Dmaven.test.skip=true
打开docker-compose.yml看一下,确保和你本机的端口没有冲突。然后就可以docker部署啦
$ docker-compose build
$ docker-compose up
部署完成后稍等片刻(网关完全启动比较耗时),打开你的小程序开发工具,点击上方的编译
就可以看到首页了。
因为现在域名用的是localhost,手机是访问不到的,需要内网穿透。我在dev/ngrok/下放了linux版本的ngrok,如果你也是linux系统,直接运行里面的目录下的start.sh
就行了,别的系统的话去谷歌找一下.. 随后会得到一个随机的域名(websocket通用),把它配置到小程序前端的config/api.js下,替换原来的localhost:8080。然后点真机调试
就能通过手机访问到服务端了。
不想用了? 删除所有相关镜像
$ docker-compose down
$ docker rmi $(docker images | grep fangxianyu | awk '{print $3}')
不想用docker-compose就只能一步步来了。
先启动3个基础服务。运行dev/mysql
,dev/redis
,dev/rebbitmq
目录下的start.sh
。
把6个服务(auth-service
,goods-service
,user-service
,im-service
,eureka
,gateway
)下Application启动类跑起来。
其他和快速开始一样
具体参考docker-compose.yml
。基础服务的端口都可以不暴露,暴露出来是为了方便生产环境中调试
后端API基于Header中的JWT Token进行认证。如果你还不了解JWT的话可以先了解下,微服务认证的神器。
controller中通过@JWT注解把Token进行认证后转成JWTUser类。具体参考各个controller中的代码。在yml中可以配置秘钥文件的名字如:
jwt:
pvt-key-file-name: RSA.key
pub-key-file-name: RSA.pub
duration: 1D #JWT 1天过期
请确保resource目录下有你配置的这个秘钥文件。JWT发行方(auth-service)需要私钥(.key),验证方(goods-service,im-service)需要公钥(.pub)。
如果你想改成新的秘钥,io.github.nnkwrik.authservice.token.RSAKeysGenerator
中提供了RSA密钥对生成器。运行后会在auth-service/src/main/resources
下生成新的秘钥对(.key和.pub)。把公钥(.pub)复制到需要JWT验证的服务(goods-service
,im-service
)的resource下,就能替换成新的秘钥了。
auth-service
的test里面提供了生成Token的方法,方便生产环境下使用。
别忘记Star!
后端调用微信api认证的部分用到了微信Java开发工具包的weixin-java-miniapp
,非常感谢
前端参考了NideShop商城小程序,非常感谢
图床用的是免费的SMMS,一小时内能上传的图片数有上限,需要注意一下。
订单和支付没有完成,随缘开发。 NideShop商城里好像已经有支付和订单的页面,有兴趣做二次开发的话可以参考
这次开发过程中遇到的坑都有在博客中做记录,可以看一下
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。