Login.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 index(){
  13. $post=request()->post();
  14. $username = isset($post['username'])&&$post['username']!="" ? trim($post['username']) :"";
  15. if($username==""){
  16. return error_show(1004,"参数username 不能为空");
  17. }
  18. $password = isset($post['password'])&&$post['password']!="" ? trim($post['password']):"";
  19. if($password==""){
  20. return error_show(1004,"参数username 不能为空");
  21. }
  22. $account = Db::name("account")->where(["is_del"=>0,"username"=>$username])->find();
  23. if(empty($account)){
  24. return error_show(1005,"账户未找到");
  25. }
  26. if($account['status']==2){
  27. return error_show(1005,"账户已过有效期");
  28. }
  29. $now =time();
  30. $expire = strtotime($account['expiretime']);
  31. $start = strtotime($account['starttime']);
  32. if($now<$start){
  33. return error_show(1005,"账户未到生效期");
  34. }
  35. if($now>$expire){
  36. return error_show(1005,"账户已过有效期");
  37. }
  38. if($account['status']==0){
  39. $account['status']=1;
  40. $account['activetime']=date("Y-m-d H:i:s");
  41. $account['updatetime']=date("Y-m-d H:i:s");
  42. Db::name("account")->update($account);
  43. }
  44. $token = makeToken($account);
  45. $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();
  46. $userinfo['token'] = $token;
  47. write_log("账户{$account['username']}登录系统","login","","",1);
  48. return app_show(0,"登录成功",$userinfo);
  49. }
  50. public function logout(){
  51. $post=request()->post();
  52. $token = isset($post['token'])&&$post['token']!="" ? trim($post['token']) :"";
  53. if($token==""){
  54. return error_show(101,"参数token 不能为空");
  55. }
  56. $verify = verifyToken($token);
  57. if($verify['code']!=0){
  58. return error_show($verify['code'],$verify['msg']);
  59. }
  60. $info = Db::name("account_token")->where(["token"=>$token])->update(['token'=>""]);
  61. if($info){
  62. return app_show(0,"退出成功");
  63. }else{
  64. return error_show(1004,"退出失败");
  65. }
  66. }
  67. }