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代码如下:
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代码如下:
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辅助类。代码如下:
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;
进口