| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- /**
- * 账户绑定
- */
- namespace app\api\controller\v1;
- use app\common\library\Mail;
- use app\common\model\Members;
- use think\Controller;
- use think\Db;
- use think\Session;
- class Checkemail extends Controller
- {
- protected $memberModel;
- public function _initialize()
- {
- parent::_initialize();
- $this->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('邮箱解绑失败', '');
- }
- }
|