Hướng dẫn tích hợp đăng nhập Facebook vào Website – tính năng đăng nhập bằng facebook mới nhất 2023

Hiện nay, chắc hẳn các bạn sẽ bắt gặp rất nhiều trang web có chức năng đăng nhập bằng tài khoản Facebook, điều đó thuận tiện cho người dùng, bởi vì người dùng không phải mất công tạo tài khoản trên trang web mà vẫn có thể đăng nhập để sử dụng các chức năng của thành viên.

Nếu bạn có ý định tích hợp chức năng đăng nhập bằng Facebook cho website của mình thì bài viết này sẽ hướng dẫn cho các bạn làm được điều đó với minh họa bằng ngôn ngữ PHP. Mình sẽ có 2 cách để giúp bạn có thể “tích hợp đăng nhập Facebook vào Website”.

  • Cách 1: Không sử dụng Facebook SDK
  • Cách 2: Sử dụng Facebook SDK

Sau bài viết này, nếu bạn nắm được các bước thực hiện, bạn hoàn toàn có thể áp dụng cho các tài khoản khác như Google hoặc mạng xã hội Twitter.

Toàn bộ “Hướng dẫn tích hợp đăng nhập Facebook vào Website” trong bài viết này được tham khảo từ nguồn Facebook ở 2 địa chỉ sau:

1. Hiểu về quy trình xác thực bằng Facebook – đăng nhập Facebook

Để xác thực bằng facebook chúng ta sẽ trải qua 4 bước cơ bản như sau:

  • Đầu tiên, từ trang web của mình, chúng ta yêu cầu người dùng cho phép truy cập vào thông tin của người dùng (Từ thông tin này ta sẽ dùng để đăng nhập vào hệ thống). Thực ra ở bước này ta sẽ chuyển hướng người dùng đến trang xác thực của facebook.
  • Tiếp theo, người dùng sẽ xác nhận và cung cấp cho ta các quyền để truy cập vào thông tin của người dùng.
  • Sau đó, facebook sẽ chuyển hướng người dùng về lại trang web của ta cùng với thông tin về quyền truy cập mà người dùng đã cho phép.
  • Từ thông tin facebook trả về, ta sẽ gọi các hàm API của facebook để lấy thông tin của người dùng như user name, email,…
  • Với những thông tin đã có được, ta tiến hành đăng nhập cho người dùng (chẳng hạn lưu vào session rằng người dùng đã đăng nhập), nếu muốn ta có thể sử dụng thông tin người dùng để lưu vào database.

Tôi đã hệ thống các bước trên lại thành sơ đồ đơn giản như sau:

Sơ đồ đăng nhập facebook
Sơ đồ đăng nhập facebook (Hướng dẫn tích hợp đăng nhập Facebook vào Website)

>>>Có thể bạn quan tâm: Top 15 hình thức quảng cáo trên Facebook hiệu quả nhất

2. Hướng dẫn tích hợp đăng nhập Facebook vào Website không dùng Facebook SDK – tích hợp login facebook vào website

Dưới đây tôi sẽ cố gắng trình bày thật chi tiết và dễ hiểu việc thực hiện sơ đồ trên với một ví dụ đăng nhập đơn giản, sử dụng ngôn ngữ PHP.

(Xin chú ý các bước dưới đây là các bước thực hiện chứ không có quan hệ song song với các bước ở sơ đồ trên)

2.1. Bước 1: Tạo một Facebook App và Setting

Trước tiên, ta cần tạo 1 app trong facebook và cài đặt nó để chạy trên môi trường vdata.com.vn(vì ở đây tôi sẽ ví dụ chạy trên vdata.com.vn, các bạn có thể sửa lại cài đặt cho phù hợp với môi trường riêng của mình)

Tạo 1 app mới tại https://developers.facebook.com/apps/ và điền các thông tin cơ bản:

Hướng dẫn tích hợp đăng nhập Facebook vào Website
Tạo ID ứng dụng mới

Ở mục Cài đặt – > Thông tin cơ bản: điền các thông tin yêu cầu

Thông tin cơ bản: điền các thông tin yêu cầu
Thông tin cơ bản: điền các thông tin yêu cầu

Ở hình trên ta thấy có 2 thông tin quan trọng là ID ứng dụng và Khóa bí mật của ứng dụng sẽ được sử dụng trong code sau này.

Ở mục Xét duyệt ứng dụng ta thực hiện đặt chế độ công khai cho ứng dụng:

Hướng dẫn tích hợp đăng nhập Facebook vào Website
Xét duyệt ứng dụng ta thực hiện đặt chế độ công khai cho ứng dụng

2.2. Bước 2: Tạo trang đăng nhập

File: index.php

Sau khi đã tạo xong app trên facbook, tiếp theo ta tạo trang đăng nhập cho website của mình. Để cho đơn giản, trang đăng nhập của tôi chỉ bao gồm 1 nút đăng nhập. Khi người dùng kích chuột vào đó, nó sẽ nhảy tới trang xác thực của facebook.

Tạo trang đăng nhập
Tạo trang đăng nhập (tích hợp login facebook vào website)

Màn hình login

Màn hình login
Màn hình login

Màn hình xác thực facebook

Code của trang index.php

Code của trang index.php
Code của trang index.php

Ở dòng 12, trong thẻ ta có 2 tham số quan trọng:

  • client_id: đây là APP ID của app ta vừa tạo
  • redirect_uri: sau khi người dùng xác thực với facebook xong, facebook sẽ tự động điều hướng người dùng trở lại địa chỉ này. (tại đây ta sẽ xử lý các tham số được gởi về bởi facebook để lấy thông tin người dùng)
  • scope: yêu cầu truy cập vào thông tin người dùng, vì chỉ cần lấy thông tin cá nhân cơ bản nên scope là public_profile

2.3. Bước 3: Tạo trang xử lý khi người dùng đã xác thực bằng facebook

File: callback.php

Ở bước này ta thực hiện 3 bước nhỏ:

  • Lấy access token từ giá trị trả về của facebook
  • Lấy thông tin người dùng từ access token có được
  • Login người dùng vào hệ thống

Sau khi đã xác thực xong với facbook, người dùng sẽ được chuyển hướng về lại địa chỉ vdata.com.vn/thuvien/fblogin/callback.php

Khi chuyển hướng người dùng trở lại trang callback.php , facebook gởi thêm các thông tin xác thực của người dùng, từ đó ta có thể lấy được thông tin của người dùng vừa xác thực.

Cụ thể ở đây facebook điều hướng người dùng về địa chỉ của ta cùng với một tham số GET code như url sau:

step7

Từ giá trị của code ta sẽ lấy ra được access token để truy cập vào thông tin người dùng bằng cách gọi một HTTP GET request đến địa chỉ có dạng như sau:

step8

Nếu như thành công, ta sẽ nhận được kết quả trả về:

step9

Dưới đây là đoạn code thực hiện các công việc trên:

Để lấy được thông tin người dùng ta gọi đến Facebook Graph API sau:

step11

Thông tin facebook user lấy bằng Graph API

Đoạn code lấy thông tin người dùng bằng Facebook Graph API

step12

Toàn bộ code đầy đủ file callback.php

step13

2.4. Bước 4: Lưu thông tin người dùng nếu muốn

Ở bước 3, sau khi đã lấy thông tin người dùng, các bạn có thể lưu người dùng vào database, hoặc kiểm tra người dùng đã có trên hệ thống chưa …Thông tin bây giờ là của bạn, các bạn có thể làm bất cứ điều gì mình muốn.

3. Hướng dẫn tích hợp đăng nhập Facebook vào Website sử dụng Facebook SDK – fb web đăng nhập

Facebook cung cấp SDK hoặc API để đăng nhập với chức năng facebook trên website. Nhưng Facebook SDK cho JavaScript là cách thân thiện mà hầu hết người dùng thường sử dụng để tích hợp chức năng đăng nhập facebook vào website.

Trong JavaScript, chỉ cần Facebook App ID trong FB.init({});

  • fbLogin() mở hộp thoại đăng nhập để người dùng có thể đăng nhập vào facebook thông qua ủy quyền.
  • getFbUserData() trích xuất ra thông tin dữ liệu người dùng từ  Facebook và hiển thị cũng như trạng thái đăng nhập của người dùng.
  • fbLogout() đăng xuất ra khỏi tài khoản Facebook.
<script>
window.fbAsyncInit = function() {
    // FB JavaScript SDK configuration and setup
    FB.init({
      appId      : 'InsertYourFacebookAppId', // FB App ID
      cookie     : true,  // enable cookies to allow the server to access the session
      xfbml      : true,  // parse social plugins on this page
      version    : 'v2.8' // use graph api version 2.8
    });
    
    // Check whether the user already logged in
    FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {
            //display user data
            getFbUserData();
        }
    });
};

// Load the JavaScript SDK asynchronously
(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

// Facebook login with JavaScript SDK
function fbLogin() {
    FB.login(function (response) {
        if (response.authResponse) {
            // Get and display the user profile data
            getFbUserData();
        } else {
            document.getElementById('status').innerHTML = 'User cancelled login or did not fully authorize.';
        }
    }, {scope: 'email'});
}

// Fetch the user profile data from facebook
function getFbUserData(){
    FB.api('/me', {locale: 'en_US', fields: 'id,first_name,last_name,email,link,gender,locale,picture'},
    function (response) {
        document.getElementById('fbLink').setAttribute("onclick","fbLogout()");
        document.getElementById('fbLink').innerHTML = 'Logout from Facebook';
        document.getElementById('status').innerHTML = 'Thanks for logging in, ' + response.first_name + '!';
        document.getElementById('userData').innerHTML = '<p><b>FB ID:</b> '+response.id+'</p><p><b>Name:</b> '+response.first_name+' '+response.last_name+'</p><p><b>Email:</b> '+response.email+'</p><p><b>Gender:</b> '+response.gender+'</p><p><b>Locale:</b> '+response.locale+'</p><p><b>Picture:</b> <img src="'+response.picture.data.url+'"/></p><p><b>FB Profile:</b> <a target="_blank" href="'+response.link+'">click to view profile</a></p>';
    });
}

// Logout from facebook
function fbLogout() {
    FB.logout(function() {
        document.getElementById('fbLink').setAttribute("onclick","fbLogin()");
        document.getElementById('fbLink').innerHTML = '<img src="fblogin.png"/>';
        document.getElementById('userData').innerHTML = '';
        document.getElementById('status').innerHTML = 'You have successfully logout from Facebook.';
    });
}
</script>

HTML

<div id=”status”></div>

<a href=”http://dotnet.edu.vn/javascript:void(0);” onclick=”fbLogin()” id=”fbLink”><img src=”fblogin.png”/></a>

<div id=”userData”></div>

Xem thêm tại đây: https://www.codexworld.com/login-with-facebook-using-javascript-sdk/

Hy vọng, với những bước đơn giản ở trên, các bạn có thể tự nắm được cách xác thực của facebook để lấy thông tin người dùng, hoặc bằng một vài thay đổi nhỏ ở bước 1, các bạn hoàn toàn có thể yêu cầu người dùng cung cấp quyền post bài viết, upload ảnh … các bạn nên đọc thêm ở 2 link mình đã dẫn ra ở trên để có thể làm được điều này.

  • https://developers.facebook.com/docs/facebook-login/web
  • https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow

Ngoài ra, mình mong rằng với Hướng dẫn tích hợp đăng nhập Facebook vào Website ở trên, các bạn cũng có thể tự mình viết được những đoạn mã xác thực cho các mạng xã hội khác như google, twitter…

Từ khóa tìm kiếm: tích hợp login facebook vào website

tích hợp login facebook vào website
đăng nhập bằng facebook
đăng nhập fb trên web
đăng nhập facebook trên web
tích hợp đăng nhập google vào website
facebook đăng nhập
đăng nhập facebook web
fb đăng nhập web
fb web cơ bản
fb web đăng nhập
facebook trên web
facebook dang nhap trên web
đăng nhập facebook bằng web
đăng nhập fb web
fb trang web
facebook web đăng nhập
facebook đăng nhập web
đăng nhập bằng fb
đăng nhập với facebook
tính năng đăng nhập bằng facebook
đăng nhập bằng facebook php
login with facebook website
link login facebook
code login facebook
code đăng ký đăng nhập php

LADIGI – Công ty dịch vụ SEO giá rẻ, SEO từ khóa, SEO tổng thể, SEO website cam kết lên Top Google uy tín chuyên nghiệp, an toàn, kết quả.

         

 

 

 

Scores: 4.38 (148 votes)

100 lần tự tìm hiểu cũng không bằng 1 lần được tư vấn