Xử lý đăng nhập bằng facebook đơn giản
Hiện nay, đăng nhập bằng facebook không còn xa lạ với chúng ta, nó giúp người dùng thay vì mỗi trang web lại phải nhớ một tài khoản – nhiều khi còn không biết trang đó mình đăng ký tài khoản tên gì nữa – thì chúng ta chỉ cần nhớ tài khoản facebook của chúng ta là có thể đăng ký tài khoản trên nhiều trang web như thương mại điện tử, …
Contents
1. Bạn cần gì để có thể xử lý đăng nhập bằng facebook?
Bạn cần những điều sau:
- Một application trên facebook.
- Thư viện facebook SDK
- Một tên miền sử dụng giao thức https
2. Từng bước xử lý đăng nhập facebook
B1: Tạo một application trên facebook
Bạn nhấn vào đây sau đó nhấn vào ứng dụng của tôi -> tạo ứng dụng
Sau đó đặt tên ứng dụng vào điền email, cuối cùng click vào Tạo ID ứng dụng.
Setup application: Bạn click vào Cài đặt -> thông tin cơ bản.
Bạn hãy điền domain và cả subdomain nếu có vào khung Miền ứng dụng mà mình đã khoanh vùng đấy và ấn lưu thay đổi.
Và các bạn có thấy mình khoanh chỗ trạng thái không: đang phát triển nghĩa là chỉ mình sử dụng được người khác không sử dụng được. Sau khi mình hoàn thành việc phát triển và muốn cho người khác sử dụng thì bật cái đó lên nhưng trước khi bật phải điền url có https vào URL chính sách quyền riêng tư và URL Điều khoản dịch vụ nha!
B2: Tải thư viện Facebook SDK PHP
Bạn down thư viện về trên github tại đây nhé!
Sau khi tải về bạn hãy tạo thêm hai file facebook.php và facebook-callback.php như vậy nè!
facebook.php <?php include 'Facebook/autoload.php'; $fb = new \Facebook\Facebook([ 'app_id' => '156339800000000', 'app_secret' => '29a083d80dsaf0dsdf0dfds0sa9safda', 'default_graph_version' => 'v3.2', //'default_access_token' => '{access-token}', // optional ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email','user_likes']; // optional $loginUrl = $helper->getLoginUrl('https://test.tronghao.site/facebook-callback.php', $permissions); echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>'; ?>
Những thông tin bạn cần thay đổi là app_id, app_secret, default_graph_version và địa chỉ trả về dòng 14. Lưu ý địa chỉ phải là giao thức https nhé!.
Vậy những thông tin này lấy ở đâu? Bạn truy cập vào application bạn vừa tạo lúc nãy và lấy nó điền vào giúp mình nhé.
facebook-callback.php <?php //session_start(); include 'Facebook/autoload.php'; $fb = new \Facebook\Facebook([ 'app_id' => '156339800000000', 'app_secret' => '29a083d80dsaf0dsdf0dfds0sa9safda', 'default_graph_version' => 'v3.2', //'default_access_token' => '{access-token}', // optional ]); $helper = $fb->getRedirectLoginHelper(); if(isset($_GET["state"])) { $helper->getPersistentDataHandler()->set('state', $_GET["state"]); } try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (! isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } try { $response = $fb->get('/me', $accessToken); $userNode = $response->getGraphUser(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } echo 'Logged in as ' . $userNode->getName()." id: ".$userNode["id"]; ?>
B3: Cài đăng nhập vào application
Rồi chọn WWW do mình đang làm bằng web, rồi điền website vào nhớ là có https nhé! nhấn save xong rồi ấn cài đặt gõ đường dẫn đến file facebook-callback.php là xong!
Trong quá trình chạy nếu có lỗi nào phát sinh thì các bạn xem video này xem có giống lỗi mình bị không nhe, rồi sửa theo, cái này lúc trước mình làm bị lỗi vô tình tìm được video này ớ! Link video: tại đây
Kết Luận
Như vậy mình đã hướng dẫn xong các bạn đăng nhập bằng facebook. Cảm ơn các bạn đã đọc bài viết. Nếu có thắc mắc gì cứ để lại bình luận bên dưới nhé!