Xây dựng và thiết lập chức năng cho phép người dùng chia sẻ liên kết lên

Một phần của tài liệu Nghiên cứu giao thức OAuth và ứng dụng trong xác thực (Trang 50)

tường Facebook từ Drupal.

Người có thể chia sẻ liên kết kèm theo bình luận lên tường Facebook. Với module ShareFB, người dùng không cần phải cho phép ứng dụng trên Facebook, đơn giản, họ chỉ cần đăng nhập Facebook là có thể làm được điều này.

Tên module: ShareFB

Chức năng: Cho phép người dùng chia sẻ liên kết và post bình luận về một

node trên Drupal lên tường Facebook.

Ý tưởng thiết kế:

 Hiển thị nút bấm ở cuối mỗi node. Cho phép chia sẻ một số thông tin về nút như: link, title, body, caption, image...

 Cách thức hoạt động:

Hình 3.12. Cách hoạt động của ShareFB

Xây dựng module: ShareFB Đăng nhập FB Xác thực với FB Ứng dụng chia sẻ liên kết Trang Drupal Rồi Chưa Hủy

- File: ShareFB.info.

Chứa các thông tin cơ bản về module ShareFB: name = "ShareFB"

description = "Cho phep chia se lien ket va dang tin len tuong Facebook"

core = 7.x

- File: ShareFB.module.

Chứa các hook, các hàm giúp module hoạt động.

* Hook init()

function ShareFB_init() {

drupal_add_css(drupal_get_path('module',

'ShareFB') . '/ShareFB.css'); }

* File ShareFB.css để trình bày nút:

.ShareFB-box { float: right; clear: right; }

* Hook_node_view()

function ShareFB_node_view($node, $view_mode =

'full') {

// Lay dia chi cua nut

$url = url('node/' . $node->nid, array('absolute' => TRUE));

// Dinh dang nut

$node->content['ShareFB'] = array(

'#markup' => theme('ShareFB', array('url' => $url)),

); }

* Hook_theme()

function ShareFB_theme($existing, $type, $theme,

$path) {

return array(

'variables' => array( 'url' => NULL, ), ), 'ShareFB_button' => array( 'variables' => array( 'url' => NULL, ), ), ); }

* Theme cho ShareFB button box

function theme_ShareFB($variables) { $url = $variables['url'];

$output = '<div class="ShareFB-box">'; $output .= theme( 'ShareFB_button', array( 'url' => $url, ) ); $output .= '</div>'; return $output; }

* Theme cho nút ShareFB

function theme_ShareFB_button($variables) { $url = $variables['url'];

$output = '<a name="fb_share" ' .

'type="button"' . 'share_url="' . $url . '"></a>' .'<script

src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" ' .'type="text/javascript"></script>';

return $output; }

Thẻ <a> để tạo liên kết đến ứng dụng chia sẻ của Facebook được lưu trữ bởi Facebook, giúp người dùng đăng liên kết và bình luận về một node cụ thể của Drupal lên tường Facebook.

Thẻ <script> chỉ đến thành phần JavaScript được cung cấp và hỗ trợ bởi Facebook để chạy ứng dụng chia sẻ và sau đó chuyển hướng trình duyệt về trang Drupal.

Cài đặt, cấu hình và sử dụng

Hai module oafb và ShareFB phải được đặt trong thư mục sites/all/modules trong cài đặt Drupal.

Hoạt động của module oafb còn phụ thuộc vào module libraries, do đó module libraries phải được cài đặt và bật lên. Quản trị viên cần phải cấu hình module oafb như trong hình 3.11 với App ID và App Secret của ứng dụng họ đã đăng ký với Facebook.

Module ShareFB có thể hoạt động ngay sau khi cài đặt.

Sau khi cài đặt và cấu hình hai module oafb và ShareFB, giao diện trang Drupal được thể hiện như trong hình 3.13.

Hình 3.13. Giao diện Drupal sau khi cài đặt module oafb và ShareFB

Khi người dùng bấm nút “Login/Register via FB”, nếu người dùng chưa đăng nhập Facebook thì trang xác thực Facebook được gọi.

Hình 3.14. Trang xác thực của Facebook

Khi xác thực Facebook thành công, người dùng được chuyển hướng về trang cá nhân Drupal của họ.

Hình 3.15. Trang cá nhân của người dùng Drupal

Nếu người dùng đã đăng nhập Facebook thì trang xác thực Facebook không hiển thị mà người dùng sẽ được chuyển hướng ngay tới trang cá nhân Drupal của họ.

Khi người dùng bấm nút , nếu người dùng chưa đăng nhập Facebook thì trang xác thực Facebook được gọi. Nếu người dùng đã đăng nhập Facebook thì ứng dụng chia sẻ liên kết của Facebook được gọi. Người dùng có thể thêm bình luận, chọn nơi chia sẻ liên kết, cho phép người thấy nội dung. Các thông tin này sẽ xuất hiện tương ứng với lựa chọn của người dùng.

Hình 3.16. Ứng dụng chia sẻ liên kết

KẾT LUẬN

Với thời gian nghiên cứu tuy không dài, song luận văn đã trình bày ngắn gọn các vấn đề về xác thực, giao thức xác thực phổ biến cho ứng dụng web là OAuth, OpenId và sự khác nhau cơ bản giữa hai giao thức này.

Trên cơ sở những hiểu biết về Facebook và Drupal. Luận văn đã xây dựng thành công hai module cho Drupal với chức năng: cho phép người dùng đăng nhập hoặc đăng kí tài khoản Drupal từ tài khoản Facebook; cho phép họ chia sẻ liên kết, đăng bình luận lên tường Facebook.

Nếu có nhiều thời gian hơn, luận văn sẽ tiếp tục hoàn thiện module cho phép người dùng đăng nhập/đăng kí thông qua các tài khoản xã hội khác như: Google, Twitter,... Xây dựng module cho phép người dùng upload tài liệu vào Google Docs hoặc Dropbox từ Drupal. Phát triển Drupal thành một website hoàn chỉnh cả về nội dung lẫn hình thức.

TÀI LIỆU THAM KHẢO Tiếng Việt

1. Trần Văn Lễ (2012), Phát triển ứng dụng kết nối Facebook trên cơ sở giao thức OAuth (Open Authentication), Luận văn thạc sĩ, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội.

Tiếng Anh

2. Jay Goldman (10-2008), Facebook Cookbook, Publisher: O’Reilly Media

3. Matt Butcher (2008), Learning Drupal 6 Module Development. PACKT Publishing.

4. Matt Butcher, Matt Farina, Ken Rickard, Greg Dunlap, Larry Garfield, John Albin Wilkins (2010), Drupal 7 Module Development. PACKT Publishing.

5. Richard Duncan (2001), An Overview of Different Authentication Methods and Protocols, Copyright SANS Institute, Author Retains Full Rights.

6. Ryan Boyd (2012), Getting Started with OAuth 2.0, Publisher: O’Reilly Media 7. Smith, R. E. (2002), Authentication: From passwords to public keys, Boston:

Addison-Wesley.

8. Shashwat Srivastava, Apeksha Singh (2011), Facebook Application Development with Graph API Cookbook. PACKT Publishing.

9. Zippy Erlich, Moshe Zviran (2009), Authentication methods for Computer Systems Security, Category: IT Security & Ethics

10. Wayne Graham (2008), Facebook API Developers Guide, Publisher: Apress. 11. http://en.wikipedia.org 12. http://groups.drupal.org 13. http://oauth.net 14. http://tutorials.jenkov.com/oauth2 15. http://www.comptechdoc.org 16. http://www.ibm.com/us/en/ 17. http://www.windley.com 18. https://www.facebook.com/

Một phần của tài liệu Nghiên cứu giao thức OAuth và ứng dụng trong xác thực (Trang 50)