Login.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace app\Home\controller;
  3. use think\Db;
  4. class Login
  5. {
  6. /**
  7. * @method post
  8. * @param username 账户名
  9. * @param password 密码
  10. *
  11. */
  12. public function __construct(){
  13. if(request()->isOptions()){
  14. echo '';
  15. die();
  16. }
  17. }
  18. public function index(){
  19. $post=request()->post();
  20. $username = isset($post['username'])&&$post['username']!="" ? trim($post['username']) :"";
  21. if($username==""){
  22. return error_show(1004,"参数username 不能为空");
  23. }
  24. $password = isset($post['password'])&&$post['password']!="" ? trim($post['password']):"";
  25. if($password==""){
  26. return error_show(1004,"参数username 不能为空");
  27. }
  28. $account = Db::name("account")->where(["is_del"=>0,"username"=>$username])->find();
  29. if(empty($account)){
  30. return error_show(1005,"账户未找到");
  31. }
  32. if($account['status']==2){
  33. return error_show(1005,"账户已过有效期");
  34. }
  35. $now =time();
  36. $expire = strtotime($account['expiretime']);
  37. $start = strtotime($account['starttime']);
  38. if($now<$start){
  39. return error_show(1005,"账户未到生效期");
  40. }
  41. if($now>$expire){
  42. return error_show(1005,"账户已过有效期");
  43. }
  44. if($account['status']==0){
  45. $account['status']=1;
  46. $account['activetime']=date("Y-m-d H:i:s");
  47. $account['updatetime']=date("Y-m-d H:i:s");
  48. Db::name("account")->update($account);
  49. }
  50. $token = makeToken($account);
  51. $userinfo = Db::name("account_info")->alias("a")->join("fc_rela_account b","b.account_info=a.id")->where(["b.accountid"=>$account['id']])->field("a.*")->find();
  52. $userinfo['token'] = $token;
  53. write_log("账户{$account['username']}登录系统","","homelogin","",1);
  54. return app_show(0,"登录成功",$userinfo);
  55. }
  56. public function logout(){
  57. $post=request()->post();
  58. $token = isset($post['token'])&&$post['token']!="" ? trim($post['token']) :"";
  59. if($token==""){
  60. return error_show(101,"参数token 不能为空");
  61. }
  62. $verify = verifyToken($token);
  63. if($verify['code']!=0){
  64. return error_show($verify['code'],$verify['msg']);
  65. }
  66. $info = Db::name("account_token")->where(["token"=>$token])->update(['token'=>""]);
  67. if($info){
  68. return app_show(0,"退出成功");
  69. }else{
  70. return error_show(1004,"退出失败");
  71. }
  72. }
  73. }