123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- namespace app\api\logic;
- use app\common\model\UserModel;
- class UserLogic
- {
- public function register($arr)
- {
- $fillfields = ['phone', 'passwd'];
- foreach ($fillfields as $key => $value) {
- if (!isset($arr[$value]) || empty($arr[$value])) {
- return backarr(0, "参数缺少");
- }
- }
- $m_u = new UserModel();
- $phone = $arr['phone'];
- $passwd = $phone . $arr['passwd'];
- $where = ['phone' => $phone];
- $uinfo = $m_u->getInfo($where);
- if (empty($uinfo)) {
- //注册
- $arr['passwd'] = $this->createpasswd($passwd);
- $uid = $m_u->insertData($arr);
- if (empty($uid)) {
- return backarr(0, "注册失败");
- }
- } else {
- //登录
- $uid = $uinfo['id'];
- $checked = $this->checkpasswd($passwd, $uinfo['passwd']);
- if (!$checked) {
- return backarr(0, "密码错误");
- }
- }
- $result = $this->changetoken($uid, $phone);
- if (empty($result['status'])) {
- return backarr(0, $result['msg']);
- }
- $field = ['id', 'phone', 'token'];
- $where = ['id' => $uid];
- $uinfo = $m_u->getInfo($where, $field);
- return backarr($uinfo, "注册成功", $uinfo);
- }
- public function login($arr)
- {
- $fillfields = ['phone', 'passwd'];
- foreach ($fillfields as $key => $value) {
- if (!isset($arr[$value]) || empty($arr[$value])) {
- return backarr(0, "参数缺少");
- }
- }
- $m_u = new UserModel();
- $phone = $arr['phone'];
- $passwd = $phone . $arr['passwd'];
- $where = ['phone' => $phone];
- $uinfo = $m_u->getInfo($where);
- if (empty($uinfo)) {
- return backarr(0, "无用户信息");
- }
- $uid = $uinfo['id'];
- $checked = $this->checkpasswd($passwd, $uinfo['passwd']);
- if (!$checked) {
- return backarr(0, "密码错误");
- }
- $result = $this->changetoken($uid, $phone);
- if (empty($result['status'])) {
- return backarr(0, $result['msg']);
- }
- $field = ['id', 'phone', 'token'];
- $where = ['id' => $uid];
- $uinfo = $m_u->getInfo($where, $field);
- return backarr($uinfo, "登录成功", $uinfo);
- }
- private function checkpasswd($pwd, $hash)
- {
- return password_verify($pwd, $hash);
- }
- private function createpasswd($pwd)
- {
- $newpasswd = password_hash($pwd, PASSWORD_DEFAULT);
- return $newpasswd;
- }
- private function changetoken($uid, $str)
- {
- $token = $this->gettoken($str);
- $m_u = new UserModel();
- $updateData = ['token' => $token];
- $where = ['id' => $uid];
- $row = $m_u->updateinfo($where, $updateData);
- if (empty($row)) {
- return backarr(0, "修改token失败");
- }
- return backarr(1, "修改token成功");
- }
- private function gettoken($str)
- {
- $str = md5(uniqid(md5(microtime(true)), true));
- $token = sha1($str . $str);
- return $token;
- }
- }
|