246 lines
7.7 KiB
PHP
246 lines
7.7 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | likeshop开源商城系统
|
||
// +----------------------------------------------------------------------
|
||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||
// | gitee下载:https://gitee.com/likeshop_gitee
|
||
// | github下载:https://github.com/likeshop-github
|
||
// | 访问官网:https://www.likeshop.cn
|
||
// | 访问社区:https://home.likeshop.cn
|
||
// | 访问手册:http://doc.likeshop.cn
|
||
// | 微信公众号:likeshop技术社区
|
||
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
|
||
// | likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
|
||
// | 禁止对系统程序代码以任何目的,任何形式的再发布
|
||
// | likeshop团队版权所有并拥有最终解释权
|
||
// +----------------------------------------------------------------------
|
||
// | author: likeshop.cn.team
|
||
// +----------------------------------------------------------------------
|
||
namespace app\api\controller;
|
||
|
||
use app\api\logic\LoginLogic;
|
||
use app\common\basics\Api;
|
||
use app\common\enum\NoticeEnum;
|
||
use app\common\server\JsonServer;
|
||
use app\common\server\ConfigServer;
|
||
use app\api\validate\RegisterValidate;
|
||
use app\api\validate\LoginValidate;
|
||
use think\exception\ValidateException;
|
||
use app\api\validate\OaLoginValidate;
|
||
use think\response\Json;
|
||
|
||
class Account extends Api
|
||
{
|
||
|
||
public $like_not_need_login = ['silentLogin', 'authLogin', 'register', 'login','mnplogin', 'codeurl', 'oalogin',
|
||
'oplogin','logout','smslogin', 'uinAppLogin', 'silentLogin', 'authLogin', 'scanCode', 'scanLogin', 'apiLogin'];
|
||
|
||
/**
|
||
* 注册
|
||
*/
|
||
public function register()
|
||
{
|
||
$post = $this->request->post();
|
||
$post['check_code'] = ConfigServer::get('register', 'captcha', 0);
|
||
$post['message_key'] = NoticeEnum::REGISTER_NOTICE;
|
||
try{
|
||
validate(RegisterValidate::class)->check($post);
|
||
}catch(ValidateException $e) {
|
||
return JsonServer::error($e->getError());
|
||
}
|
||
|
||
$result = LoginLogic::register($post);
|
||
if($result !== false) {
|
||
return JsonServer::success('注册成功', $result);
|
||
}
|
||
return JsonServer::error('注册失败:'.LoginLogic::getError());
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* Notes: 小程序登录(旧系统用户,返回用户信息,否则返回空)
|
||
* @author 段誉(2021/4/19 16:50)
|
||
*/
|
||
public function silentLogin()
|
||
{
|
||
$post = $this->request->post();
|
||
if (empty($post['code'])) {
|
||
return JsonServer::error('参数缺失');
|
||
}
|
||
$data = LoginLogic::silentLogin($post);
|
||
if(false === $data) {
|
||
$error = LoginLogic::getError() ?? '登录失败';
|
||
return JsonServer::error($error);
|
||
}
|
||
return JsonServer::success('', $data);
|
||
}
|
||
|
||
/**
|
||
* Notes: 小程序登录(新用户登录->需要提交昵称和头像参数)
|
||
* @author 段誉(2021/4/19 16:49)
|
||
*/
|
||
public function authLogin()
|
||
{
|
||
$post = $this->request->post();
|
||
if (empty($post['code']) || empty($post['nickname'])) {
|
||
return JsonServer::error('参数缺失');
|
||
}
|
||
|
||
$data = LoginLogic::authLogin($post);
|
||
if(false === $data) {
|
||
$error = LoginLogic::getError() ?? '登录失败';
|
||
return JsonServer::error($error);
|
||
}
|
||
return JsonServer::success('', $data);
|
||
}
|
||
|
||
/**
|
||
* 手机号密码登录
|
||
*/
|
||
public function login()
|
||
{
|
||
$post = $this->request->post();
|
||
(new LoginValidate)->goCheck('mpLogin', $post);
|
||
$data = LoginLogic::mpLogin($post);
|
||
return JsonServer::success('登录成功',$data);
|
||
}
|
||
|
||
/**
|
||
* showdoc
|
||
* @catalog 接口/账号
|
||
* @title 获取获取向微信请求code的链接
|
||
* @description
|
||
* @method get
|
||
* @url /account/codeurl
|
||
* @param url 必填 varchar 前端当前url
|
||
* @return_param url string codeurl
|
||
* @remark 这里是备注信息
|
||
* @number 0
|
||
* @return {"code":1,"msg":"获取成功","data":{"url":'http://mp.weixin……'}}
|
||
*/
|
||
public function codeUrl()
|
||
{
|
||
$url = $this->request->get('url');
|
||
return JsonServer::success('获取成功', ['url' => LoginLogic::codeUrl($url)]);
|
||
}
|
||
|
||
/**
|
||
* showdoc
|
||
* @catalog 接口/账号
|
||
* @title 微信H5登录
|
||
* @description 微信H5登录
|
||
* @method post
|
||
* @url /account/oalogin
|
||
* @return {"code":1,"msg":"登录成功","data":["token":"3237676fa733d73333341",//登录令牌"nickname":"好象cms-小林",//昵称"avatar":"http://b2c.yixiangonline.com/uploads/user/avatar/3f102df244d5b40f21c4b25dc321c5ab.jpeg",//头像url"level":0,//等级],"show":0,"time":"0.775400"}
|
||
* @param code 必填 string code
|
||
* @return_param token string 登录令牌
|
||
* @return_param nickname string 昵称
|
||
* @return_param avatar string 头像
|
||
* @remark
|
||
* @number 1
|
||
*/
|
||
public function oaLogin()
|
||
{
|
||
$post = $this->request->post();
|
||
(new OaLoginValidate())->check($post);
|
||
$data = LoginLogic::oaLogin($post);
|
||
return JsonServer::success('登录成功', $data);
|
||
}
|
||
|
||
/**
|
||
* Notes: uniapp微信登录
|
||
*/
|
||
public function uinAppLogin()
|
||
{
|
||
$post = $this->request->post();
|
||
$data = LoginLogic::uinAppLogin($post);
|
||
if(is_string($data )){
|
||
return JsonServer::error($data);
|
||
}
|
||
$data = [
|
||
'code' => 1,
|
||
'show' => 0,
|
||
'msg' => '登录成功',
|
||
'data' => $data
|
||
];
|
||
return json($data);
|
||
}
|
||
|
||
/***
|
||
* 短信登录
|
||
* @return Json
|
||
*/
|
||
public function smsLogin()
|
||
{
|
||
$post = $this->request->post();
|
||
(new LoginValidate())->goCheck('smsLogin');
|
||
$data = LoginLogic::login($post);
|
||
return JsonServer::success('登录成功', $data);
|
||
}
|
||
|
||
/***
|
||
* 退出登录
|
||
* @throws \think\Exception
|
||
* @throws \think\db\exception\DataNotFoundException
|
||
* @throws \think\db\exception\ModelNotFoundException
|
||
* @throws \think\exception\DbException
|
||
* @throws \think\exception\PDOException
|
||
*/
|
||
public function logout()
|
||
{
|
||
LoginLogic::logout($this->user_id, $this->client);
|
||
//退出登录只有成功
|
||
return JsonServer::success();
|
||
}
|
||
|
||
|
||
/**
|
||
* @notes 扫码登录
|
||
* @return Json
|
||
* @author 段誉
|
||
* @date 2021/10/29 11:50
|
||
*/
|
||
public function scanCode()
|
||
{
|
||
$result = LoginLogic::scanCode();
|
||
if (false === $result) {
|
||
return JsonServer::error(LoginLogic::getError() ?? '未知错误');
|
||
}
|
||
return JsonServer::success('', ['url' => $result]);
|
||
}
|
||
|
||
|
||
/**
|
||
* @notes PC端扫码登录
|
||
* @return Json
|
||
* @author 段誉
|
||
* @date 2021/10/29 18:00
|
||
*/
|
||
public function scanLogin()
|
||
{
|
||
$params = $this->request->post();
|
||
$result = LoginLogic::scanLogin($params);
|
||
if (false === $result) {
|
||
return JsonServer::error(LoginLogic::getError() ?? '未知错误');
|
||
}
|
||
return JsonServer::success('', $result);
|
||
}
|
||
|
||
/**
|
||
* AppID登录
|
||
* 开放给第三方使用
|
||
*/
|
||
public function apiLogin(): Json
|
||
{
|
||
$post = $this->request->post();
|
||
if (empty($post['app_id']) || empty($post['app_secret'])) {
|
||
return JsonServer::error('参数错误');
|
||
}
|
||
$data = LoginLogic::apiLogin($post);
|
||
if (false === $data) {
|
||
return JsonServer::error(LoginLogic::getError() ?? '未知错误');
|
||
}
|
||
return JsonServer::success('登录成功',$data);
|
||
}
|
||
} |