wechat-laravel-lavas-system【WLLS】

主要目的是在微信小程序系统的搭建初期,方便快速构建,前后台页面基本框架,基本的用户注册登录和图片/视频等资源的上传以及微信支付。

主要功能:

Laravel提供API基础功能(用户,七牛,微信支付,等) Lavas后台admin网站登录使用微信小程序授权,并支持权限管理 微信小程序用户自动注册和登录 Lavas集成UI插件(mint UI,muse UI),兼容PC和移动前端

写在最前:

参考和使用的git代码:

laravel-boilerplate

小程序授权登录思路参考

微信小程序二维码官方介绍

Lavas百度官方介绍

另外,希望你是知道什么是laravel,lavas,微信小程序的基本开发过程.等,或者知道一些开源框架的基本使用。

(详细编写中...)

环境安装

基础环境要求:

php7.1

composer

npm

laravel(https://laravel.com/docs/5.6/installation)

lavas(https://lavas.baidu.com/guide/v2/basic/install)

微信小程序开发者工具

代码运行

一、Laravel:

进入laravel目录

cd laravel

1配置config

.env文件

拷贝.evn.example为.evn,并修改关键参数:

数据库mysql (提前创建一个空的数据库db,不需要创建table)

APP_NAME

JWT_SECRET(手动改一下,或者生成,或者不改)

APP_KEY(手动改一下,或者生成,或者不改。php artisan key:generate)

2安装依赖库

composer install

3生成基础数据库migration

(先确保数据库db已经创建)

php artisan migrate

4配置自己平台的参数

目录:/laravel/config/

七牛配置:qiniu.php

微信配置(小程序和支付):weixinpay.php

微信退款需要的证书目录,请更新自己的证书文件

laravel/app/wxpaycert

5对外api route说明

目录:laravel/routes/api.php 支持的api route列举在其中

(我关闭了标准的login/signup之类的api,因为微信小程序中使用wx.login自动注册登录【下面详细说】)

6本地测试。

建议使用valet(参见官方:https://laravel.com/docs/5.6/valet)

访问: http://[域名]/api/hello 如果可以访问则运行正常

7部署到服务器

整个laravel目录需要拷贝到服务器。配置php环境。 由于一般不会把vendor的依赖库和.evn 发布到您的git仓库。所以需要进入服务器把.evn 文件和vendor重新生成。 也就是:

拷贝.evn.example为.evn,并修改关键参数

composer install

注意:laravel/public 为网站服务器的root根目录[这些属于laravel的基本操作,其他的操作不赘述了]

8权限管理

配合pc后台管理,需要一个管理员/员工的权限管理,去限制数据库/api的某些操作。

使用checkadmin middleware 路径为:

laravel/app/Http/Middleware/checkadmin.php

对应使用该middleware的controller有

laravel/app/Api/V1/Controllers/UserController.php

中的__construct

可以参考修改checkadmin.php丰富您的权限管理

二、lavas后台架构

1安装lavas

参考lavas官方网站的步骤

npm install lavas -g

2进入lavas目录

cd lavas

3安装依赖库

npm install

4修改配置

(可选)关注本地测试时的api proxy【lavas/server.dev.js中的proxyTable】

5本地测试

lavas dev

访问http://localhost:3000/ 如果正常,则成功

6说明

当前只实现了‘登录’按钮功能(即授权登录)

7后台admin授权登录设计

参考附件:《微信小程序授权登录设计-0609.pptx》

8部署到服务器

lavas build

生成dist/目录,该目录为需要发布到您服务器网站

三、微信小程序

基于微信官方开发工具生成的代码框架。

1修改参数

wechat/config.js中api域名和七牛域名

var host = 'https://api.abc.com'; var qiniudomain = 'https://qinius.abc.com';

wechat/project.config.json中微信小程序appid和project name

"appid": "xxxxxxxxxxxxxx", "projectname": "WLLxcx",

2关键代码说明

自动登录(wechat/app.js)

wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId,但api并不会返回openid,而是直接自动登录,返回用户信息。并且自动注册和登录 wx.request({ url: config.service.requestUrl+'/wxlogin/'+res.code, //仅为示例,并非真实的接口地址 data: { }, header: { 'content-type': 'application/json' // 默认值 }, method: 'GET', success: function(res) { console.log('wx.login---res==',res.data); if(res.data.status=='ok'){ var ret = res.data.ret; _this.globalData.iflogin = true; _this.globalData.apitoken = ret.token; _this.globalData.userInfo = ret.userinfo; if (this.apiloginCallback) { this.apiloginCallback() } }else{ _this.globalData.iflogin = false; _this.globalData.apitoken = ''; _this.globalData.userInfo = null; } } })

注意代码段中的wx.request的使用,以及返回值。请对应去laravel API代码中controller对应的代码处理。

3七牛上传

实例代码路径:

wechat/pages/personalcenter/personalcenter.js的modifyUserIcon函数

最后

代码在完善中,也欢迎一起加入.

LICENSE

Released under the MIT License

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。