memberModel = new Members; } /** * 验证邮箱链接地址 */ public function checkEmail() { $token = input('t', '', 'trim'); $username = input('username', '', 'trim'); if (empty($token)) { $this->error('邮箱验证地址错误', ''); } if (empty($username)) { $this->error('邮箱验证地址错误', ''); } //验证token $res = (new Mail())->checkMailToken($username, $token); if (!$res['status']) { $this->error($res['msg']); } $data = $res['data']; if (!$userinfo = Members::where(['username' => $username])->find()) { $this->error('非法用户', ''); } //3.验证是否重复绑定 if (isset($userinfo['email']) && ($data['mail'] == $userinfo['email'])) { $this->error('邮箱地址跟原来邮箱地址一样,不要重复绑定', ''); } //4.更新数据 记录日志 if ($res = Members::where(['username' => $username])->update(['email' => $data['mail']])) { Db::table('cy_member_history')->insert([ 'userid' => $userinfo['id'], //todo 'password' => '', 'mobile' => $data['mail'], 'ip' => request()->ip(), 'create_time' => time(), ]); //删除解绑密码状态 if (Session::has('reset_email')) { Session::delete('reset_email'); } (new Mail)->clearKeyByUsername($username); return $this->success('邮箱绑定成功',''); } return $this->error('邮箱绑定失败',''); } /** * 解绑邮箱 * @throws \app\api\controller\HttpResponseException */ public function unBindEmail() { // //删除解绑密码状态 // if (!Session::has('reset_email')) { // return $this->error('参数错误', url('v1.userCenter/account')); // } $token = input('t', '', 'trim'); $username = input('username', '', 'trim'); if (empty($token)) { $this->error('邮箱验证地址错误', ''); } if (empty($username)) { $this->error('邮箱验证地址错误', ''); } //验证token $res = (new Mail())->checkMailToken($username, $token); if (!$res['status']) { $this->error($res['msg'], ''); } if (!$userinfo = Members::where(['username' => $username])->find()) { $this->error('非法用户', ''); } //4.更新数据 记录日志 if ($res = Members::where(['username' => $username])->update(['email' => ''])) { Db::table('cy_member_history')->insert([ 'userid' => $userinfo['id'], //todo 'password' => '', 'email' => 'unbind', 'ip' => request()->ip(), 'create_time' => time(), ]); // //删除解绑密码状态 // if (Session::has('reset_email')) { // Session::delete('reset_email'); // } (new Mail)->clearKeyByUsername($username); return $this->success('邮箱解绑成功,请到个人中心绑定新邮箱', ''); } return $this->error('邮箱解绑失败', ''); } }