Facebook:缺少授权码 - Laravel + AngularJS

作者: omarsafwany创建于 2015年12月7日更新于 2019年11月20日
标签phpfacebookawaiting reply

public function facebook(Request $request) { $accessTokenUrl = 'https://graph.facebook.com/v2.5/oauth/access_token'; $graphApiUrl = 'https://graph.facebook.com/v2.5/me'; $params = [ // 'code' => $request->input('code'), 'client_id' => 'client_id', 'redirect_uri' => 'http://localhost/dealandpack-api/public/', 'client_secret' => 'secret' ]; $client = new GuzzleHttp\Client(); // Step 1. Exchange authorization code for access token. // return response()->json(['token' => $client->get($accessTokenUrl, ['query' => $params])]); $accessToken = $client->get($accessTokenUrl, ['query' => $params])->json(); // Step 2. Retrieve profile information about the current user. $profile = $client->get($graphApiUrl, ['query' => $accessToken])->json(); // Step 3a. If user is already signed in then link accounts. if ($request->header('Authorization')) { $user = User::where('facebook', '=', $profile['id']); if ($user->first()) { return response()->json(['message' => 'There is already a Facebook account that belongs to you'], 409); } $token = explode(' ', $request->header('Authorization'))[1]; $payload = (array) JWT::decode($token, Config::get('app.token_secret'), array('HS256')); $user = User::find($payload['sub']); $user->facebook = $profile['id']; $user->displayName = $user->displayName || $profile['name']; $user->save(); return response()->json(['token' => $this->createToken($user)]); } // Step 3b. Create a new user account or return an existing one. else { $user = User::where('facebook', '=', …

内容来源: sahat/satellizer