Taro教程微信app开发实践-03小程序登录和用户信息获取

数据处理

小程序开发


浏览:1061 次

以前的小程序已与接口连接,但数据处理方法不正确。我们应该更改session_key和openid存储在服务器端,不应该发送到applet端,因为https请求数据可以通过charles和fiddler检索,官方不建议我们这样做。

这里我们只需将数据存储在MySQL数据库中。有条件的童鞋可以将数据存储在Mongodb或Redis中。

新建表tb_会话3

在MySQL数据库中添加一个名为miai的数据库。字符集为utf-8,然后创建表tb_Session3rd,创建表sql,如下所示:

创建表格`tb_session3rd`(

`id `varchar(32)非空,

`session_key`varchar(255)NOT NULL,

`open_ id `varchar(255)NOT NULL,

`expires_ in `varchar(255)NOT NULL,

主键(`id`)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

构建表后,我们可以传输session_key和openid存储在数据库中,然后将主键id返回给小程序并存储。

PhalApi数据库配置

有关在Phalapi config dbs中配置数据库的信息。php如下:

“服务器”=>阵列(

“db_master”=>数组(//服务器标记

“type”=>“MySQL”,//数据库类型,暂时只支持MySQL和sqlserver

“host”=>“127.0.0.1”,//数据库域名

“name”=>“Miai”,//数据库名称

“user”=>“Root”,//数据库用户名

“password”=>“Root”,//数据库密码

“端口”=>3306,//数据库端口

“字符集”=>“UTF8”,//数据库字符集

),

),

“tables”=>数组(

//通用路由

'__默认__'=>;阵列(

“前缀”=>“tb_”,

“key”=>“id”,

“map”=>数组(

数组('db'=>'db_master'),

),

),

小程序登录的全过程

新添加的phalapi/src/app/Domain/Core。php代码如下:

命名空间app\域;

使用App\Common\Util;

使用App\Model\Session3rd作为Session3dModel;

/**

*@作者:pythonsir

*@weixin:cxyzxh1388

*/

类核心{

公共函数getSession3rd($data){

$model=新Session3rdModel();

$data['id']=实用程序::createNonceStr();

$model->getSession3rd($data);

返回$data['id'];

}

}

添加了phalapi/src/app/Model/Session3rd。php代码如下:

命名空间app\模型;

使用EasyWeChat\Kernel\Exceptions\Exception;

使用PhalApi\Model\NotORMModel作为NotORM;

类Session3rd扩展了NotORM

{

公共函数getSession3rd($data){

\PhalApi\DI()->记录器->信息('插入tb_session3rd数据',$data);

$this->插入($data);

}

}

添加Phalapi/src/app/Common/Util。php辅助类。代码如下:

命名空间App\Common;

/**

*@作者:pythonsir

*@weixin:cxyzxh1388

*/

类Util

{

/**

*生成32位随机数

*@param int$length

*@return字符串

*/

公共静态函数createNonceStr($length=32)

{

$chars=“abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”;

$str=“”;

对于($i=0;$i<$length;$i++){

$str.=子字符串($chars,mt_rand(0,strlen($char)-1),1);

}

返回$str;

}

}

到目前为止,服务器端代码已经完成。

编码小程序侧码(Taro)

修改src/app。js代码如下:

从“@tarojs/Taro”导入Taro,{组件};

从“@tarojs/mobx”导入{Provider};

从“./pages/Index”导入索引;

从“./config/api”导入api;

进口