Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.19 KB | None | 0 0
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3.  
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Http\Request;
  6. use App\Member;
  7. use Ramsey\Uuid\UuidFactory;
  8. use Validator;
  9. use Hash;
  10. use Illuminate\Support\Facades\Crypt as Crypt;
  11. use Illuminate\Support\Facades\DB;
  12.  
  13. class AuthController extends Controller {
  14.     protected $userid;
  15.  
  16.     function __construct() {
  17.         $userid = $this->gen_userid();
  18.     }
  19.  
  20.     public function page_register() {
  21.         return view('auth.register');
  22.     }
  23.  
  24.     public function post_account_register(Request $request) {
  25.         $res = array(
  26.             "error" => false,
  27.             "email" => false,
  28.             "username"=> false,
  29.             "password" => false
  30.         );
  31.  
  32.         $email = $request->input('email');
  33.         $username = $request->input('username');
  34.         $password = $request->input('password');
  35.  
  36.         $validator = Validator::make($request->all(), [
  37.             'email' => 'required|email|unique:members,email|max:255',
  38.             'username' => 'required|min:5|max:25|unique:members,username',
  39.             'password' => 'required|min:8|max:99'
  40.         ]);
  41.  
  42.         if($validator->fails()) {
  43.             $res["error"] = true;
  44.  
  45.             if($validator->errors()->has('email')) {
  46.                 $res["email"] = true;
  47.             }
  48.  
  49.             if($validator->errors()->has('username')) {
  50.                 $res["username"] = true;
  51.             }
  52.  
  53.             if($validator->errors()->has('password')) {
  54.                 $res["password"] = true;
  55.             }
  56.         } else {
  57.             $d = array(
  58.                 "email" => $email,
  59.                 "username" => $username,
  60.                 "password" => $password
  61.             );
  62.             $this->create_account($d);
  63.  
  64.             $res = [
  65.                 "error" => false,
  66.                 "userid" => Crypt::encryptString($this->userid)
  67.             ];
  68.  
  69.             return json_encode($res);
  70.         }
  71.  
  72.         echo json_encode($res);
  73.     }
  74.  
  75.     private function create_account($data) {
  76.         $members = DB::table('members');
  77.  
  78.         if($members->where('username', $data["username"])->count() == 0 && $members->where("email",$data["email"])) {
  79.             $members->insert(
  80.                 [
  81.                     'email' => $data["email"],
  82.                     'username' => $data["username"],
  83.                     'password' => Hash::make($data["password"]),
  84.                     'uuid' => $this->gen_uuid(),
  85.                     'userid' => $this->userid
  86.                 ]
  87.             );
  88.         }
  89.     }
  90.  
  91.     private function gen_uuid()
  92.     {
  93.         return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
  94.             mt_rand(0, 0xffff), mt_rand(0, 0xffff),
  95.  
  96.             mt_rand(0, 0xffff),
  97.             mt_rand(0, 0x0fff) | 0x4000,
  98.  
  99.             mt_rand(0, 0x3fff) | 0x8000,
  100.  
  101.             mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
  102.         );
  103.     }
  104.  
  105.     private function gen_userid() {
  106.         $ret = "";
  107.         $a = ["A","B","C","D","E","E","F","0","1","2","3","4","5","6","7","8","9"];
  108.  
  109.         for($i = 0; $i < 64; $i++) {
  110.             $rand = rand(0,count($a));
  111.             $ret .= $a[$rand];
  112.         }
  113.  
  114.         return $ret;
  115.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement