Bạn đã biết thực hiện chức năng login with facebook bằng java và php chưa? Nếu chuawe hãy đọc và tìm hướng đi cho mình nhé.

Hướng dẫn cách thực hiện chức năng login vào ứng dụng J2EE, bằng tài khoảng facebook có sẵn.

Các điều kiện cần về kiến thức cơ bản:

  • Nắm vững khái niệm về ngôn ngữ lập trình Java, lập trình thao tác hướng đối tượng
  • Có khái niệm cơ bản về JSON, biết cách đọc hiểu JSON.

Công nghệ sử dụng:

  • Net Bean 6.9.1
  • Microsoft SQL 2008 R2
  • HTTP Apache Client
  • Google JSON
Giải thích về chức năng login bằng facebook vào một ứng dụng hay một website nào đó có tích hợp tinh năng này.

Cách thực hiện chức năng login with facebook bằng java và php như sau:

Login là 1 trong những chức năng gần như bắt buộc trong tất cả các ứng dụng.

Trước kia, để có 1 tài khoản, người dùng phải đăng ký, điều này đôi khi gây khó chịu và gây mất thời gian.

Hiện tại, hầu như mỗi người đều có 1 tài khoản facebook. Với chức năng login bằng tài khoảng facebook, người dùng có thể đăng nhập chỉ với 1 hay 2 cú click chuột, vô cùng thuận tiện.

Một điều khá ngạc nhiên là, khi chúng tôi tìm hiểu về bộ SDK của facebook, ngôn ngữ Java chỉ có 3 bộ SDK Java:

  • 1 bộ cho Spring,
  • 1 bộ cho Android,
  • 1 bộ cho Black Berry.

Hoàn toàn không có một bộ SDK nào hỗ trợ ứng dụng J2EE thông thường (Trái ngược với PHP, bộ SDK Facebook cho ngôn ngữ PHP tương đương đơn giản, dễ sử dụng).

Bạn có thể nhấn vào đường dẫn này để tham khảo thêm : https://developers.facebook.com/docs/sdks/

Vì lẽ đó, chúng tôi viết bài hướng dẫn này giúp quý vị hiểu rõ cơ chế authencation (trao quyền) của facebook.

Qua đó, quý vị có thể viết chức năng này không cần dùng SDK, cũng như mở rộng ra các ngôn ngữ khác.

chức năng login with facebook bằng java và php
Cơ chế trao quyền của facebook

Khi ứng dụng của bạn muốn truy cập/chỉnh sửa thông tin từ phía người dùng, nó sẽ đưa ra 1 url dẫn tới pop-up,  yêu cầu người dùng xác nhận.

Khi người dùng bấm nút “Chấp nhận”, facebook sẽ gửi trả lại ứng dụng 1 chuỗi chữ số gọi là Authorization Code.

Từ Authorization Code này, ta đưa lên server, lấy về 1 access token dưới dạng

access_token={access-token}&expires={seconds-til-expiration}

Access Token này được sử dụng để gọi các hàm từ Facebook Graph API.

Quý vị có thể tìm hiểu thêm về Facebook API từ 2 link dưới đây:

Áp dụng trong ứng dụng J2EE

Trong trường hợp của chúng ta, chúng ta sử dụng Graph API này để lấy về các thông tin như: Facebook ID, Name, Username… của người dùng.

chức năng login with facebook bằng java và php
lấy facebook id

Chúng ta sẽ so sánh Facebook ID với danh sách user trong database. Nếu như chưa có trong database thì ta register, rồi đăng nhập người dùng, nếu đã có dưới database thì chúng ta đăng nhập thẳng người dùng.

Diagram của quá trình login, nếu như user đã accept, bước 3,4 sẽ được bỏ đi, thay vào đó facebook sẽ trả thẳng Authorization code tới ứng dụng.

Mã xác thực sơ đồ
Mã xác thực sơ đồ

Xây dựng ứng dụng

Để thực hiện chức năng login bằng facebook, đầu tiên chúng ta cần tạo 1 ứng dụng trên facebook. Quý vị vào trang web sau đây:

https://developers.facebook.com/apps/

Facebook app
Facebook app

Quý vị nhớ bổ sung localhost vào app domain và site url. Ghi lại AppID và AppSecret để sử dụng trong ứng dụng.

Tiếp theo, chúng ta sẽ xây dựng 1 ứng dụng đơn giản cho phép login bằng facebook.

Chúng ta cần 2 bộ thư viện:

Gson 2.2.4: http://code.google.com/p/google-gson/downloads/list

Apache HttpComponent bản 4.3.1: http://hc.apache.org/downloads.cgi

Giải nén các file zip. Tạo thư mục lib, copy những file đó vào thư mục lib trong project, add library những file sau:

· gson-2.2.4.jar

· commons-logging-1.1.3.jar

· fluent-hc-4.3.1.jar

· httpclient-4.3.1.jar

· httpcore-4.3.jar

Quý vị cũng nhớ add thư viện sqljdbc4.jar để kết nối tới database.

Danh sách các thư viện sau khi add.

Ta tạo class DTO với những field sau

Đoạn annotation để mapping từ json vào object cho đúng field (JSON facebook trả về, có field id là id của tài khoản facebook, ta map field này vào field facebookID của object). Quý vị nhớ tạo get,set cho các field.

Tiếp tục viết hàm DBUtils. Để đơn giản, chúng tôi để connection string tĩnh trong code (để kết nối động, quí vị tham khảo lại bài Tạo kết nối động đến DB trong mô hình MVC Pattern trên Web Server (Tomcat)).

Chương trình của chúng ta cho phép đăng kí, đăng nhập bình thường và đăng kí, đăng nhập bằng facebook, do đó chúng ta cần 4 method.

Tiếp theo là register và login theo thông tin từ account facebook.

Có thể xem thêm https://thachnuida.com/blog/2013/09/03/viet-chuc-nang-login-bang-tai-khoan-facebook-khong-dung-facebook-sdk/