Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Auth;
  6. use App\User;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Http\Request;
  9. use Socialite;
  10. use DB;
  11.  
  12. class AuthController extends Controller
  13. {
  14.  
  15. public function login(Request $r)
  16. {
  17. if($r->get('code')) {
  18. $user = Socialite::driver('vkontakte')->user();
  19. $response = json_decode(file_get_contents('https://api.vk.com/method/users.get?user_ids='.$user->user['uid'].'&fields=photo_200,sex&access_token='.$user->token.'&v=5.60'));
  20. $avatar = false;
  21. if($response->response[0]->first_name != 'DELETED') $avatar= $response->response[0]->photo_200;
  22. $auth = $this->findOfCreateUser($user, $avatar);
  23. Auth::login($auth, true, 1);
  24. return redirect('/');
  25. }
  26.  
  27. return Socialite::driver('vkontakte')->scopes(['friends', 'photo_200', 'sex'])->redirect();
  28. }
  29.  
  30. private function findOfCreateUser($user, $avatar) {
  31. $ava = $user->avatar;
  32. if($avatar) $ava = $avatar;
  33.  
  34. $u = User::where('vk_id', $user->id)->first();
  35. $partner = User::where('id', \Request::cookie('ref'))->first();
  36.  
  37. $cookie = \Request::cookie('ref');
  38. if($cookie == null) $cookie = 0;
  39.  
  40. if($u) {
  41. DB::table('users')->where('vk_id', $u->vk_id)->update([
  42. 'name' => $user->name,
  43. 'avatar' => $ava,
  44. 'token' => $user->token
  45. ]);
  46. if($u->partner == 0) {
  47. DB::table('users')->where('id', $u->id)->update(['partner' => \Request::cookie('ref')]);
  48. if(!$cookie == null) DB::table('users')->where('id', $partner->id)->update(['money' => $partner->money+1]);
  49. }
  50. $user = $u;
  51. } else {
  52. $user = User::create([
  53. 'vk_id' => $user->id,
  54. 'name' => $user->name,
  55. 'avatar' => $ava,
  56. 'token' => $user->token,
  57. 'partner' => $cookie
  58. ]);
  59. if(!$cookie == null) DB::table('users')->where('id', $partner->id)->update(['money' => $partner->money+1]);
  60. }
  61. return $user;
  62. }
  63.  
  64. public function logout() {
  65. Auth::logout();
  66. return redirect('/');
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement