Đồ án Tìm hiểu kỹ thuật cho phép đăng ký người dùng qua tài khoản Facebook và google - Nguyễn Văn Phú
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Tìm hiểu kỹ thuật cho phép đăng ký người dùng qua tài khoản Facebook và google - Nguyễn Văn Phú", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- do_an_tim_hieu_ky_thuat_cho_phep_dang_ky_nguoi_dung_qua_tai.pdf
Nội dung text: Đồ án Tìm hiểu kỹ thuật cho phép đăng ký người dùng qua tài khoản Facebook và google - Nguyễn Văn Phú
- Bé gi¸o dôc vµ ®µo t¹o Trêng ®¹i häc d©n lËp h¶i phßng o0o ®å ¸n tèt nghiÖp Ngµnh c«ng nghÖ th«ng tin H¶i Phßng 2015
- Bé gi¸o dôc vµ ®µo t¹o Trêng ®¹i häc d©n lËp h¶i phßng o0o T×m hiÓu kü thuËt cho phÐp ®¨ng ký ngêi dïng qua tµi kho¶n facebook vµ google ®å ¸n tèt nghiÖp ®¹i häc hÖ chÝnh quy Ngµnh: C«ng nghÖ Th«ng tin
- Bé gi¸o dôc vµ ®µo t¹o Trêng ®¹i häc d©n lËp h¶i phßng o0o T×m hiÓu kü thuËt cho phÐp ®¨ng ký ngêi dïng qua tµi kho¶n facebook vµ google ®å ¸n tèt nghiÖp ®¹i häc hÖ chÝnh quy Ngµnh: C«ng nghÖ Th«ng tin Sinh viªn thùc hiÖn: NguyÔn V¨n Phó Gi¸o viªn híng dÉn: §ç V¨n ChiÓu M· sè sinh viªn: 1313101002
- bé gi¸o dôc vµ ®µo t¹o céng hoµ x· héi chñ nghÜa viÖt Nam trêng ®¹i häc d©n lËp h¶i phßng §éc lËp - Tù do - H¹nh phóc o0o nhiÖm vô thiÕt kÕ tèt nghiÖp Sinh viªn: NguyÔn V¨n Phó M· sè: 1313101002 Líp: CTL701 Ngµnh: C«ng nghÖ Th«ng tin Tªn ®Ò tµi: T×m hiÓu kü thuËt cho phÐp ®¨ng ký ngêi dïng qua tµi kho¶n facebook vµ google
- nhiÖm vô ®Ò tµi 1. Néi dung vµ c¸c yªu cÇu cÇn gi¶i quyÕt trong nhiÖm vô ®Ò tµi tèt nghiÖp a. Néi dung: Kü thuËt x¸c thùc ngêi dïng qua tµi kho¶n facebook, Kü thuËt x¸c thùc ngêi dïng qua tµi kho¶n google, X©y dung øng dông víi PHP vµ MySQL b. C¸c yªu cÇu cÇn gi¶i quyÕt §¨ng nhËp ®îc tµi kho¶n cña ngêi dïng vµo website LÊy c¸c th«ng tin c¨n b¶n ®Ó lu vµo c¬ së d÷ liÖu
- c¸n bé híng dÉn ®Ò tµi tèt nghiÖp Ngêi híng dÉn thø nhÊt: Hä vµ tªn: §ç V¨n ChiÓu Häc hµm, häc vÞ: Th¹c SÜ C¬ quan c«ng t¸c: Trêng ®¹i häc D©n LËp H¶I Phßng Néi dung híng dÉn: X¸c thùc tµi kho¶n ngêi dïng b»ng tµi kho¶n Facebook X¸c thùc tµi kho¶n ngêi dïng b»ng tµi kho¶n Google §Ò tµi tèt nghiÖp ®îc giao ngµy 06th¸ng 04n¨m 2015 Yªu cÇu ph¶i hoµn thµnh tríc ngµy 11 th¸ng 07 n¨m 2015 §· nhËn nhiÖm vô: §.T.T.N §· nhËn nhiÖm vô: §.T.T.N Sinh viªn C¸n bé híng dÉn §.T.T.N H¶i Phßng, ngµy th¸ng n¨m 2015 HiÖu trëng GS.TS.NGT TrÇn H÷u NghÞ
- Đồ án tốt nghiệp PhÇn nhËn xÐt tãm t¾t cña c¸n bé híng dÉn 1. Tinh thÇn th¸i ®é cña sinh viªn trong qu¸ tr×nh lµm ®Ò tµi tèt nghiÖp: 2. §¸nh gi¸ chÊt lîng cña ®Ò tµi tèt nghiÖp (so víi néi dung yªu cÇu ®· ®Ò ra trong nhiÖm vô ®Ò tµi tèt nghiÖp) 3. Cho ®iÓm cña c¸n bé híng dÉn: ( §iÓm ghi b»ng sè vµ ch÷ ) Ngµy th¸ng n¨m 2015 C¸n bé híng dÉn chÝnh ( Ký, ghi râ hä tªn ) Sinh viên Nguyễn Văn Phú CTL701 7
- Đồ án tốt nghiệp PhÇn nhËn xÐt ®¸nh gi¸ cña c¸n bé chÊm ph¶n biÖn ®Ò tµi tèt nghiÖp 1. §¸nh gi¸ chÊt lîng ®Ò tµi tèt nghiÖp (vÒ c¸c mÆt nh c¬ së lý luËn, thuyÕt minh ch¬ng tr×nh, gi¸ trÞ thùc tÕ, ) 2. Cho ®iÓm cña c¸n bé ph¶n biÖn ( §iÓm ghi b»ng sè vµ ch÷ ) Ngµy th¸ng n¨m 2015 C¸n bé chÊm ph¶n biÖn ( Ký, ghi râ hä tªn ) Sinh viên Nguyễn Văn Phú CTL701 8
- Đồ án tốt nghiệp LỜI CẢM ƠN Trong lời đầu tiên của báo cáo đồ án tốt nghiệp “Tìm hiểu kỹ thuật cho phép đăng ký người dùng qua tài khoản Facebook và Google” này, em muốn gửi những lời cám ơn và biết ơn chân thành nhất của mình tới tất cả những người đã hỗ trợ, giúp đỡ em về kiến thức và tinh thần trong quá trình thực hiện đồ án. Trước hết, em xin chân thành cám ơn Thầy Giáo - Ths. Đỗ Văn Chiểu, Giảng viên Khoa Công Nghệ Thông Tin, Trường ĐHDL Hải Phòng, người đã trực tiếp hướng dẫn, nhận xét, giúp đỡ em trong suốt quá trình thực hiện đồ án. Xin chân thành cảm ơn các thầy cô trong Khoa Công Nghệ Thông Tin và các phòng ban nhà trường đã tạo điều kiện tốt nhất cho em cũng như các bạn khác trong suốt thời gian học tập và làm tốt nghiệp. Cuối cùng em xin gửi lời cảm ơn đến gia đình, bạn bè, người thân đã giúp đỡ động viên em rất nhiều trong quá trình học tập và làm Đồ án Tốt Nghiệp. Do thời gian thực hiện có hạn, kiến thức còn nhiều hạn chế nên Đồ án thực hiện chắc chắn không tránh khỏi những thiếu sót nhất định. Em rất mong nhận được ý kiến đóng góp của thầy cô giáo và các bạn để em có thêm kinh nghiệm và tiếp tục hoàn thiện đồ án của mình. Em xin chân thành cảm ơn! Hải Phòng, ngày 29 tháng 06 năm 2015 Sinh viên NGUYỄN VĂN PHÚ Sinh viên Nguyễn Văn Phú CTL701 9
- Đồ án tốt nghiệp CHƢƠNG 1 GIỚI THIỆU 1.1 Vai trò của CNTT trong đời sống xã hội CNTT đã ở một bước phát triển cao đó là số hóa tất cả các dữ liệu thông tin, luân chuyển mạnh mẽ và kết nối tất cả với nhau.Mọi loại thông tin, số liệu âm thanh, hình ảnh có thể được đưa về dạng kỹ thuật số để bất kỳ máy tính nào cũng có thể lưu trữ, xử lý và chuyển tiếp cho nhiều người. Những công cụ và sự kết nối của thời đại kỹ thuật số cho phép chúng ta dễ dàng thu thập, chia sẻ thông tin và hành động trên cơ sở những thông tin này theo phương thức hoàn toàn mới, kéo theo hàng loạt sự thay đổi về các quan niệm, các tập tục, các thói quen truyền thống, và thậm chí cả cách nhìn các giá trị trong cuộc sống. CNTT đến với từng người dân, từng người quản lý, nhà khoa học, người nông dân, bà nội trợ, học sinh tiểu học .Không có lĩnh vực nào, không có nơi nào không có mặt của CNTT. Công nghệ thông tin là một trong các động lực quan trọng nhất của sự phát triển ứng dụng và phát triển công nghệ thông tin ở nước ta nhằm góp phần giải phóng sức mạnh vật chất, trí tuệ và tinh thần của toàn dân tộc, thúc đẩy công cuộc đổi mới, phát triển nhanh và hiện đại hoá các ngành kinh tế, tăng cường năng lực cạnh tranh của các doanh nghiệp, hỗ trợ có hiệu quả cho quá trình hội nhập kinh tế quốc tế, nâng cao chất lượng cuộc sống của nhân dân, đảm bảo an ninh quốc phòng và tạo khả năng đi tắt đón đầu để thực hiện thắng lợi sự nghiệp CNH,HĐH. (CT số 58-CT/TW ngày 17- 10- 2000 của BCT khoá VIII). Tác động của CNTT đối với xã hội loài người vô cùng to lớn, nó không chỉ thúc đẩy nhanh quá trình tăng trưởng kinh tế, mà còn kéo theo sự biến đổi trong phương thức sáng tạo của cải, trong lối sống và tư duy của con người Trong nền kinh tế tri thức, các quy trình sản xuất đều được tự động hoá. Máy móc không chỉ thay thế con người những công việc nặng nhọc, mà thay thế con người ở những khâu phức tạp của sản xuất và quản lý, không chỉ thay thế thao tác lao động của con người mà cả thao tác tư duy. Trong nền kinh tế toàn cầu, với sự phát triển của internet, thương mại điện tử đang trở thành một lĩnh vực phát triển rất mạnh mẽ, nó thúc đẩy các ngành sản xuất dịch vụ trên phạm vi toàn thế giới, và đặc biệt quan trọng với các nước đang phát triển, nhất là đối với vùng xa xôi hẻo lánh, các nước và các vùng này có cơ hội tiếp cận thị trường quốc tế. Công nghệ thông tin là chiếc chìa khoá để mở cánh cổng vào nền kinh tế tri thức. Mạng thông tin là môi trường lý tưởng cho sự sáng tạo, là phương tiện quan trọng để quảng Sinh viên Nguyễn Văn Phú CTL701 10
- Đồ án tốt nghiệp bá và nhân rộng nhanh vốn tri thức, động lực của sự phát triển, thúc đẩy phát triển dân chủ trong xã hội, phát triển năng lực của con người CNTT sẽ nhanh chóng thay đổi thế giới một cách mạnh mẽ, sự chuyển đổi này có vị thế trong lịch sử như một cuộc cách mạng kinh tế - xã hội và có ảnh hưởng to lớn đến đời sống con người. Đối với y tế, việc ứng dụng những tiến bộ của khoa học kỹ thuật và CNTT đã trở thành một hình thức phổ biến có tác dụng hỗ trợ kịp thời và thiết thực trong việc chữa bệnh cho nhân dân. Ví dụ, hiện nay đã dùng công nghệ siêu âm 3D (ba chiều), hoặc các bác sĩ có thể hội chẩn từ xa (thậm chí từ nhiều nước khác nhau trên thế giới). Sử dụng CNTT để hỗ trợ về mặt kỹ thuật và phương pháp điều trị cho những vùng xa trung tâm y tế đã mang lại giá trị to lớn về mặt tinh thần cũng như vật chất cho nhân dân. Trong lĩnh vực Giáo dục, đào tạo việc ứng dụng CNTT đã góp phần nâng cao chất lượng dạy và học ở các cấp, các bậc học, mở rộng thêm nhiều loại hình đào tạo như đào tạo từ xa, phối hợp liên kết giữa các trường, các Quốc gia với nhau đang nhằm đưa chất lượng giáo dục của nước ta ngang bằng với các nước trong khu vực và trên thế giới. Chính phủ điện tử trên cơ sở điện tử hoá các hoạt động quản lý nhà nước đang hình thành và ngày càng trở nên phổ biến. Mạng thông tin lớn và mạnh có thể nối các cơ quan quản lý với đối tượng quản lý, giúp cho quá trình ra quyết định được thực hiện nhanh chóng, kịp thời và chính xác và tiết kiệm thông qua các hoạt động giao ban trực tuyến từ Trung ương đến cơ sở theo định kỳ hoặc khi có sự vụ đột biến xảy ra. Thương mại điện tử xuất hiện, khách hàng có thể tiếp xúc và tìm hiểu mọi thông tin về công ty dễ dàng ở bất cứ nơi nào, lúc nào. công ty sẽ nhận được phản hồi của khách hàng nhanh chóng về chiến lược tiếp thị hoặc danh mục hàng hoá của các doanh nghiệp để từ đó có những thay đổi về chiến lược kinh doanh cho phù hợp với thị hiếu của thị trường. An ninh quốc phòng cũng có những thay đổi cơ bản, công nghệ thông tin đã tạo ra những thế hệ vũ khí, phương tiện chiến tranh "thông minh", từ đó xuất hiện hình thái chiến tranh, phương thức tác chiến mới, làm thay đổi sâu sắc học thuyết quân sự của nhiều quốc gia. Sự phát triển của công nghệ thông tin đã làm thay đổi cơ bản cơ cấu kinh tế, phương thức tổ chức và sản xuất, cách tiếp cận của từng người tới tri thức, giải trí, phương pháp tư duy và giải quyết công việc và các mối quan hệ trong xã hội. Sáng tạo ra những giá trị mới và các việc làm mới, cuộc cách mạng này sẽ mang lại những thị trường mới và những nghề nghiệp mới với những đột phá công nghệ có tính thách thức đối với toàn thế giới. Hơn nữa, chính bản thân công nghệ thông tin đã trực tiếp tạo ra sự biến đổi lớn lao trong tất cả các lĩnh vực của đời sống xã hội loài người. Chưa bao giờ quá trình dân chủ hoá lại được mở rộng và có nhiều điều kiện để thực hiện như bây giờ. CNTT đi vào cuộc sống sẽ lan toả đến mọi nơi, mọi lĩnh vực, máy tính sẽ có mặt ở khắp mọi nơi, việc kết nối mạng cũng trở nên dễ dàng và thuận tiện nhất cho tất cả mọi người Sinh viên Nguyễn Văn Phú CTL701 11
- Đồ án tốt nghiệp dân. Bên cạnh đó, mặt trái của công nghệ thông tin, của nền kinh tế tri thức đang đặt ra những thách thức rất lớn, đó là sự cách biệt giàu nghèo, sự phân hoá giữa một bên là các quốc gia, dân tộc biết nắm bắt và khai phá những nguồn lợi từ công nghệ thông tin, hạn chế những mặt tiêu cực mà nó đưa lại với các quốc gia dân tộc không có hoặc chưa phát triển những công nghệ đó. Vì vậy với sự phát triển như vũ bão của công nghệ thông tin hiện nay, quốc gia nào, dân tộc nào nhanh chóng nắm bắt và làm chủ được công nghệ thông tin thì sẽ khai thác được nhiều hơn, nhanh hơn lợi thế của mình. Và cũng chính từ đây nảy sinh một thách thức rất lớn đối với các nước đang phát triển như nước ta đó là làm thế nào để phát huy được thế mạnh của CNTT thúc đẩy sự phát triển của xã hội mà không mất đi văn hoá truyền thống quý báu của dân tộc. Sự nghiệp CNH,HĐH ở nước ta hiện nay tất yếu phải khai thác được những tiềm năng thế mạnh của công nghệ thông tin, thúc đẩy những ứng dụng và phát triển công nghệ thông tin, coi đó là một điều kiện cần thiết để đạt được những mục tiêu của giai đoạn đẩy mạnh CNH,HĐH đất nước. Nhận thức rõ vai trò của CNTT trong việc góp phần nâng cao hiệu quả công tác, cải cách hành chính, đổi mới phương thức, lề lối làm việc. 1.2 Tổng quan về Open Source. Phần mềm nguồn mở (PMNM) là những phần mềm được cung cấp dưới cả dạng mã và nguồn, không chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản quyền: người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung qui định trong giấy phép PMNM (ví dụ General Public Licence – GPL) mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng (tức là phần mềm thương mại) Nhìn chung, thuật ngữ “Open source” được dùng để lôi cuốn các nhà kinh doanh, một điều thuận lợi chính là sự miễn phí và cho phép người dùng có quyền “sở hữu hệ thống”. Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng trả một số chi phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, vv tức là những dịch vụ thực sự đã thực hiện để phục vụ người dùng, nhưng không được bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào. Sinh viên Nguyễn Văn Phú CTL701 12
- Đồ án tốt nghiệp Tiện ích mà Open Source mang lại chính là quyền tự do sử dụng chương trình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình, chỉnh sữa phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên bản cho nhiều người, quyền tự do cải tiến chương trình và phát hành những bản cải tiến vì mục đích công cộng. Lợi ích của phần mềm mã nguồn mở Phần mềm có thể được sao chép hoàn toàn miễn phí, an toàn khi chia sẽ một chương trình tuyệt vời với bạn bè. Các định dạng file không hoàn toàn bị kiểm soát bởi một vài nhà cung cấp. Điều gì sẽ xảy ra khi dữ liệu nằm trong một phần mềm độc quyền? Việc sử dụng một định dạng file bí ẩn sẽ chỉ dùng chương trình của một công ty. Do yêu cầu công việc người dùng muốn sử dụng dữ liệu trên cho một ứng dụng khác nhưng chương trình bản quyền không cho phép ! Còn nếu như nhà cung cấp chấm dứt hổ trợ và ngưng việc nâng cấp sản phẩm, chắc chắn rằng dữ liệu của người dùng phần mềm sẽ phải vứt xó. Với phần mềm bản quyền, chỉ có duy nhất nhà cung cấp có thể giải quyết vấn đề của người dùng. Nhưng! với OpenSource người dùng có thể gặp hàng tá nhà cung cấp làm vừa lòng mình. Hầu hết các sản phẩm Open Source đều có khả năng bảo mật tuyệt vời, khi một vết nứt được tìm thấy, thường được sửa chữa nhanh hơn phần mềm có bản quyền. Các hệ thống Open Source, nhất là các hệ thống dựa trên UNIX, thường linh hoạt đến khó tin nổi. Bởi vì chúng được xây dựng từ nhiều khối thống nhất và được miêu tả cặn kẽ, rất dễ để bạn thay thế nhiều phần của hệ thống với phần có giao diện tương tự. Có một cộng đồng hỗ trợ lớn. Không bị phụ thuộc vào một công ty nào.Open source đã được chấp nhận trong các công ty lớn. Nhiều hợp đồng lớn đã chấp nhận phần mềm Open Source, chẳng hạn như tại IBM, Oracle và Sun. Thậm chí Microsoft đã phải lưu tâm đến Open Source như đối thủ to lớn.Với Open Source, việc phân phối và phát triển là một phương pháp lâu dài để tạo ra phần mềm, người mua được cung cấp cả giải pháp phần mềm lẫn những dòng mã có giấy phép Open Source. Hơn nữa, các doanh nghiệp vừa và nhỏ cũng sẽ ưa chuộng phần mềm Open Source hơn. Hiện nay đã có một số tổ chức dự định sử dụng Open Source để xây dựng nhân tố cốt lõi của hệ thống-từ hệ điều hành, cơ sở dữ liệu, ứng dụng và Web server đến các hệ thống quản trị nội dung và nhiều phần mềm kinh doanh thông minh.Mặc dù con đường để free software khẳng định vị trí vẫn còn dài, nhưng đáng chú ý là Open Source đã giành được khoảng 70% thị trường ứng dụng Web, và dường như con số này vẫn tiếp tục tăng lên hàng năm.Bằng cách này, cả công ty lẫn khách hàng đều có lợi. Về phía khách hàng, họ được dùng phần mềm chất lượng tốt, hỗ trợ khách hàng đầy đủ với giá rẻ. Về phía nhà cung cấp, dựa trên Open Source, tiết kiệm đáng kể các Sinh viên Nguyễn Văn Phú CTL701 13
- Đồ án tốt nghiệp chi phí về phát triển, kiểm lỗi, quản lý dự án. Đồng thời, nhân lực của họ lại nhanh chóng nâng cao trình độ, giảm bớt thời gian làm việc “chân tay” khi tiếp nhận source code có “giá trị” và “chất lượng” từ những Open Source được xây dựng chuyên nghiệp, cấu trúc phần mềm, lập trình, tốt ngay từ đầu. Trên thị trường phần mềm, có nhiều loại giấy phép. Có thể chia các giấy phép này đại khái như sau Phần mềm thương mại (Commercial Software) Là phần mềm thuộc bản quyền của tác giả hoặc nhà sản xuất, chỉ được cung cấp ở dạng mã nhị phân, người dùng phải mua và không có quyền phân phối lại. Phần mềm thử nghiệm giới hạn (Limited Trial Software) Là những phiên bản giới hạn của các phần mềm thương mại được cung cấp miễn phí nhằm mục đích thử nghiệm, giới thiệu sản phẩm và kích thích người dùng quyết định mua. Loại sản phấm này không chỉ giới hạn về tính năng mà còn giới hạn về thời gian dùng thử (thường là 60 ngày). Phần mềm “chia sẻ” (Shareware) Loại phần mềm này có đủ các tính năng và được phân phối tự do, nhưng có một giấy phép khuyến cáo các cá nhân hoặc tổ chức mua, tùy tình hình cụ thể. Nhiều tiện ích Internet (như “WinZip” dùng các thuận lợi của Shareware như một hệ thống phân phối). Phần mềm sử dụng phi thương mại (Non-commercial Use) Loại phần mềm này được sử dụng tự do và có thể phân phối lại bởi các tổ chức phi lợi nhuận. Nhưng các tổ chức kinh tế, thí dụ các doanh nghiệp, muốn dùng phải mua. Netscape Navigator là một thí dụ của loại phần mềm này. Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free Binaries Software)Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do. Thí dụ: bản nhị phân của các phần mềm Internet Explorer và NetMeeting. Thư viện phần mềm không phải trả phần trăm (Royalties Free Software Libraries)Là những phần mềm mà mã nhị phân cũng như mã nguồn được dùng và phân phối tự do, nhưng người dùng không được phép sửa đổi. Thí dụ: các thư viện lớp học, các tệp “header”, vv Phần mềm mã nguồn mở kiểu BSD – (Open Source BSD-style) Một nhóm nhỏ khép kín (closed team) đã phát triển các PMNM theo giấy phép phân phối Berkely (BSD – Berkely Software Distribution) cho phép sử dụng và phân phối lại các phần mềm này dưới dạng mã nhị phân và mã nguồn. Tuy người dùng có quyền sửa đổi mã, nhưng về nguyên tắc nhóm phát triển không cho phép người dùng tự do lấy mã nguồn từ kho mã ra sửa (gọi là check-out) và đưa mã đã sửa vào lại kho mã mà không được họ kiểm tra trước (gọi là các “check-in”). Sinh viên Nguyễn Văn Phú CTL701 14
- Đồ án tốt nghiệp PMNM kiểu Apache (Open Source Apache-style) Chấp nhận nguồn mở kiểu BSD nhưng cho phép những người ngoài nhóm phát triển xâm nhập vào lõi của mã nền (core codebase), tức là được phép thực hiện các “check-in”. PMNM kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-style) PMNM kiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF – và GNU – Gnu‟s Not Unix, để đối nghịch hoàn toàn với CopyRight !) hay còn gọi là giấy phép GPL (General Public Licence) là một bước tiến quan trọng theo hướng tự do hóa của các giấy phép phần mềm. Giấy phép GPL yêu cầu không những mã nguồn gốc phải được phân phối theo các qui định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL. GPL cho người dùng tối đa quyền hạn và tự do đối với các PMNM theo GPL, cụ thể người dùng có quyền không những sao chép, sửa đổi, mua bán các PMNM dưới CopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất. Tóm lại nếu PMNM gốc đã theo CopyLeft thì mọi PMNM dẫn xuất của nó cũng đương nhiên theo CopyLeft. 1.3 Javascript JavaScript là ngôn ngữ kịch bản của Web. Ngôn ngữ này làm việc trong hầu hết các trình duyệt chủ đạo như IE, NN từ phiên bản 3.0 của các trình duyệt này trở đi. JavaScript được thiết kế để thêm các tương tác với các trang HTML. Ngôn ngữ JavaScript và Java là khác nhau hoàn toàn.Javascript là một ngôn ngữ thông dịch (interpreter), chương trình nguồn của nó được nhúng(embedded) hoặc tích hợp (integated) vào tập tin HTML chuẩn. Khi file được load trongBrowser (có support cho JavaScript), Browser sẽ thông dịch các Script và thực hiện các công việc xác định. Chương trình nguồn JavaScript được thông dịch trong trang HTML sau khi toàn bộ trang được load nhưng trước khi trang được hiển thị.Trước khi nghiên cứu JavaScript yêu cầu người thiết kế phải nắm được các kiến thức về:WWW, HTML và cách xây dựng cơ bản của những trang Web. JavaScript có thể làm gì: JavaScript đem đến cho người thiết kế HTML một công cụ lập trình: ngôn ngữ có cú pháp đơn giản tạo điều kiện cho hầu hết mọi người có thể đặt một đoạn mã nhỏ vào trong trang HTML. JavaScript có thể đặt một văn bản động vào trong một trang HTML - giống như một câu lệnh: document.write("" + name + "") có đưa một biến văn bản vào trong trang HTML.JavaScript có thể được sử dụng để làm chuẩn dữ liệu: một JavaScript có thể Sinh viên Nguyễn Văn Phú CTL701 15
- Đồ án tốt nghiệp được sử dụng đểlàm chuẩn dữ liệu trong form trên các trình duyệt của người duyệt Web trước khi nó được chấp nhận bởi máy chủ, việc này sẽ tiết kiệm cho máy chủ những xử lý phụ. 1.4 Tổng quan về PHP PHP (Hypertext Preprocessor) là một ngôn ngữ kịch bản máy chủ được thiết kế bởi Rasmus Lerdorf - một công cụ mạnh mẽ để tạo nên các trang thiết kế web động và tương tác. Đây là ngôn ngữ kịch bản đơn giản, nhanh chóng, linh hoạt và được sử dụng rộng rãi và phổ biến nhất cho tất cả mọi thứ, từ blog đến trang web động. Không giống như javascript chạy ở client, PHP được sử dụng để chạy phía server. Để có thể hình dung nó là cái gì một cách dễ nhất, chúng ta có thể so sánh với PHP với một bộ phận trong một nhà máy sản xuất và html chính là sản phẩm. Để làm ra một chiếc giày, chúng ta có thể tự tay mình làm nên, nhưng để làm hàng loạt những chiếc giày chúng ta cần một cái máy, cũng giống như vậy, để làm nên "một" trang web chúng ta có thể viết một trang mã html, nhưng để có thể sinh ra nhiều trang html chúng ta cần PHP (tất nhiên còn nhiều thứ khác nữa). PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với mã viết sáng sủa, tốc độ nhanh, dễ học nên nó đã trở thành một ngôn ngữ viết web rất phổ biến và được ưa chuộng. Hình 1.4 Giao diện cơ bản trang chủ php.net Ưu điểm của PHP - Cộng đồng lớn người dùng và các nhà phát triển, các tài liệu thiết kế web phong phú. - Phần mềm miễn phí được lưu hành theo quy định của PHP - Dễ học Sinh viên Nguyễn Văn Phú CTL701 16
- Đồ án tốt nghiệp - Cung cấp số lượng lớn các extension và mã nguồn có sẵn. - Cho phép thực thi mã trong môi trường hạn chế. - Cung cấp hỗ trợ cơ sở dữ liệu mở rộng. - Hoạt động trên hầu hết các hệ điều hành và nền tảng. - Cung cấp quản lý phiên bản native và API mở rộng. - Có thể được triển khai trên hầu hết các máy chủ web. Ai sử dụng PHP? Google W3C: là một côngxoocxim lập ra các chuẩn cho Intenet, nhất là cho World Wide Web. Chủ tịch của W3C là Ngài Tim Berners-Lee, người sáng tạo ra HTTP (HyperText Transfer Protocol) và HTML (HyperText Markup Language). Internet dựa trên các kỹ thuật đó.Mỗi tiêu chuẩn đi qua bốn giai đoạn: Phác thảo (Working Draft), Chỉnh sửa Cuối cùng (Last Call), Trình chuẩn (Proposed Recommendation) và Chuẩn đủ Tư cách Ứng cử (Candidate Recommendation), trước khi được gọi là Chuẩn Chính thức (Recommendation). Facebook Mức độ phổ biến Theo Wikipedia , vào tháng Giêng năm 2013, PHP đã được xây dựng trên hơn 240 triệu trang web và 2,1 triệu máy chủ web. Cú pháp Một kịch bản PHP bắt đầu với Các phần mở rộng mặc định cho các file PHP là ".php". Một file PHP thông thường có chứa các thẻ HTML, và một số mã kịch bản PHP. 1 Lịch sử phát triển PHP Được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'. PHP 3 Sinh viên Nguyễn Văn Phú CTL701 17
- Đồ án tốt nghiệp PHP 3.0 là phiên bản đầu tiên cho thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó. PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm. PHP 4 Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Một cơ chế xử lý mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên cơ chế xử lý này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời. PHP 5 Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn. Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0. Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP. Các lệnh cơ bản PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. Chỉ khác, đối với PHP chúng có nhiều cách để thể hiện. Cú pháp chính: Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu "//" cho từng dòng, hoặc dùng cặp thẻ "/* */" cho từng cụm mã lệnh. Sinh viên Nguyễn Văn Phú CTL701 18
- Đồ án tốt nghiệp Ví dụ: 1.5 Facebook Facebook là một website truy cập miễn phí do công ty Facebook, Inc điều hành. Người dùng có thể tham gia các mạng lưới được tổ chức theo thành phố, nơi làm việc, trường học và khu vực để liên kết và giao tiếp với người khác. Mọi người cũng có thể kết bạn và gửi tin nhắn cho họ, và cập nhật trang hồ sơ cá nhân của mình để thông báo cho bạn bè biết về chúng. Tên của website nhắc tới những cuốn sổ lưu niệm dùng để ghi tên những thành viên của cộng đồng campus mà một số trường đại học và cao đẳng tại Mỹ đưa cho các sinh viên mới vào trường, phòng ban, và nhân viên để có thể làm quen với nhau tại khuôn viên trường. Mark Zuckerberg thành lập Facebook cùng với bạn bè là sinh viên khoa khoa học máy tính và bạn cùng phòng Eduardo Saverin,Dustin Moskovitz và Chris Hughes khi Mark còn là sinh viên tại Đại học Harvard.Việc đăng ký thành viên website ban đầu chỉ giới hạn cho những sinh viên Harvard, nhưng đã được mở rộng sang các trường đại học khác tại khu vực Boston, Ivy League, và Đại học Stanford. Sau đó nó được mở rộng hơn nữa cho sinh viên thuộc bất kỳ trường đại học nào, rồi đến học sinh phổ thông và cuối cùng là bất cứ ai trên 13 tuổi. Facebook mở đầu là một phiên bản Hot or Not của Đại học Harvard với tên gọi Facemash. Mark Zuckerberg, khi đang học năm thứ hai tại Harvard, đã dựng nên Facemash vào ngày 28 tháng 10 năm 2003. Zuckerberg đang viết blog về một cô gái và cố gắng nghĩ ra một thứ gì đó để bớt nghĩ về cô ấy. Sinh viên Nguyễn Văn Phú CTL701 19
- Đồ án tốt nghiệp Hình 1.5 Facebook 2015 Theo tờ Harvard Crimson, Facemash "đã dùng những bức ảnh lấy từ cuốn lưu bút trực tuyến của chín Nhà, đặt hai cái kế bên nhau và yêu cầu người dùng chọn ai là người là "hot" nhất". Trang này nhanh chóng được chuyển đến vài máy chủ danh sách của nhóm campus nhưng bị những người quản lý Harvard tắt vài ngày sau đó. Zuckerberg bị ban quản lý phạt vì vi phạm an ninh, xâm phạm bản quyền và xâm phạm quyền tự do cá nhân và phải đối mặt với việc đuổi học, nhưng sau đó đã được hủy bỏ các cáo buộc. Học kỳ tiếp theo, Zuckerberg thành lập "The Facebook", ban đầu đặt tại thefacebook.com, vào ngày 4 tháng 2 năm 2004. "Mọi người đã nói nhiều về một cuốn sách đăng ảnh trong Harvard", Zuckerberg nói với The Harvard Crimson. "Tôi cho rằng hơi bị ngu xuẩn khi trường đã phải mất vài năm để bỏ nó. Tôi có thể làm tốt hơn những gì họ có thể, và tôi có thể làm nó trong vòng một tuần". Việc đăng ký thành viên ban đầu giới hạn trong những sinh viên của Đại học Harvard, và trong vòng một tháng đầu tiên, hơn một nửa số sinh viên đại học tại Harvard đã đăng ký dịch vụ này. Eduardo Saverin (lĩnh vực kinh doanh), Dustin Moskovitz (lập trình viên), Andrew McCollum (nghệ sĩ đồ họa), và Chris Hughes nhanh chóng tham gia cùng với Zuckerberg để giúp quảng bá website. Vào tháng 3 năm 2004, Facebook mở rộng sang Stanford, Columbia, và Yale. Việc mở rộng tiếp tục khi nó mở cửa cho tất cả các trường thuộc Ivy League và khu vực Sinh viên Nguyễn Văn Phú CTL701 20
- Đồ án tốt nghiệp Boston, rồi nhanh chóng đến hầu hết đại học ở Canada và Hoa Kỳ. Vào tháng 6 năm 2004, Facebook chuyển cơ sở điều hành đến Palo Alto, California. Công ty đã bỏ chữ The ra khỏi tên sau khi mua được tên miền facebook.com vào năm 2005 với giá 200.000 USD. Facebook ra mắt phiên bản trung học vào tháng 9 năm 2005, Zuckerberg gọi nó là một bước logic tiếp theo. Vào thời gian đó, các mạng của trường trung học bắt buộc phải được mời mới được gia nhập. Facebook sau đó mở rộng quyền đăng ký thành viên cho nhân viên của một vài công ty, trong đó có Apple Inc. và Microsoft. Tiếp đó vào ngày 26 tháng 9 năm 2006, Facebook mở cửa cho mọi người trên 13 tuổi với một địa chỉ email hợp lệ. Ngày 24 tháng 10 năm 2007, Microsoft thông báo đã mua được 1,6% cổ phần (240 triệu $) của Facebook, nâng giá trị tài sản của Facebook lên khoảng 15 tỷ $.Microsoft cũng mua bản quyền cho phép đặt các quảng cáo quốc tế của công ty lên Facebook. Tháng 10 2008, Facebook tuyên bố nó đã thiết lập một trụ sở quốc tế tại Dublin, Ireland.Tháng 9 năm 2009, Facebook tuyên bố lần đầu tiên công ty đã đạt lợi nhuận. Tháng 11 năm 2010, dựa trên thống kê của SecondMarket Inc., một sàn giao dịch chứng khoán của các công ty tư nhân, tổng tài sản của Facebook là 41 tỷ $ (vượt qua một chút so với eBay) và trở thành công ty dịch vụ web lớn thứ ba ở Hoa Kỳ sau Google và Amazon. Có khả năng Facebook sẽ phát hành cổ phiếu ra công chúng lần đầu IPO vào 2013. Lượng người truy cập Facebook tăng ổn định từ 2009. Trong ngày 13 tháng 3 năm 2010 số người truy cập Facebook đã vượt qua lượng người truy cập vào Google.Vào ngày 09 tháng 04 năm 2012, Facebook mua lại Instagram với giá 1 tỉ USD, bao gồm cả tiền mặt lẫn cổ phiếu. Vào ngày 14 tháng 02 năm 2014, Faecbook mua lại Whatsapp với giá 16 tỉ USD, được thanh toán bằng 12 tỷ USD cổ phiếu Facebook, 4 tỷ USD tiền mặt và thêm 3 tỷ USD cổ phiếu hạn chế chuyển nhượng dành cho các sáng lập viên WhatsApp cũng như nhân viên trong vòng 4 năm tới Hôm 29/1, Facebook báo cáo kết quả kinh doanh Q4/2014 và cả năm 2014. Theo đó, mạng xã hội thu về 3,85 tỉ USD trong quý cuối năm 2014, vượt mức kì vọng của các nhà đầu tư. Doanh thu cả năm 2014 của Facebook đạt gần 12,5 tỉ USD, cao hơn nhiều so với 7,9 tỉ USD của năm 2013 và cao gần gấp đôi doanh thu năm 2012. Sinh viên Nguyễn Văn Phú CTL701 21
- Đồ án tốt nghiệp 1.6 Google Google là một công ty Internet có trụ sở tại Hoa Kỳ, được thành lập vào năm 1998. Sản phẩm chính của công ty này là công cụ tìm kiếm Google, được nhiều người đánh giá là công cụ tìm kiếm hữu ích và mạnh mẽ nhất trên Internet. Trụ sở của Google tên là "Googleplex" tại Mountain View, California. giám đốc không người nào khác đó là Larry Page, 1 trong 2 người sáng lập ra công ty. Tên "Google" là một lỗi chính tả của từ googol, bằng 10100. Google chọn tên này để thể hiện sứ mệnh của công ty để sắp xếp số lượng thông tin khổng lồ trên mạng. Googleplex, tên của trụ sở Google, có nghĩa là 10^googol. Đầu năm 2012, Google đứng đầu trong danh sách 100 công ty có môi trường làm việc tốt nhất ở Mỹ do tạp chí Fortune bình chọn với tỷ lệ tăng trưởng việc làm trong năm 2011 là 33% .Google là một trong số ít các hãng công nghệ có tốc độ tăng trưởng nhanh trên thế giới (chỉ trong vòng khoảng 15 năm kể từ khi có ý tưởng thành lập), nhờ tạo ra một công cụ tìm kiếm kết hợp giữa hệ thống PageRank (xếp hạng tầm quan trọng của trang Web dựa trên các kết nối bên ngoài) của Larry Page và công cụ dò tìm Web (truy cập website và ghi lại nội dung) của Sergey Brin. Sự thành công của Google hoàn toàn không phải do may mắn. Google đã nỗ lực lập chỉ mục (index) số lượng trang Web được gần 25 tỉ trang, gồm 1 triệu hình ảnh và 1 triệu tin nhắn theo nhóm Usenet. Ngoài việc tìm kiếm trang web, người dùng Google còn có thể tìm kiếm tệp tin PDF, các đoạn PostScript, văn bản, tệp tin Microsoft, Lotus, PowerPoint và Shockwave. Google xử lý gần 50% lượng truy vấn tìm kiếm Web trên toàn thế giới, là lựa chọn tìm kiếm số 1 cho người dùng Web, và là một trong 5 trang web hàng đầu trên Internet có hơn 380 triệu người dùng mỗi tháng, và hơn 50% lượng truy cập đến từ các quốc gia ngoài Mỹ. Công nghệ của Google khá đặc biệt : có thể phân tích hàng triệu biến khác nhau về người dùng và doanh nghiệp đăng quảng cáo, rồi kết nối họ với hàng triệu đoạn quảng cáo tiềm năng, và đưa ra các thông điệp quảng cáo gần với đối tượng nhất trong vòng chưa đến 01 giây. Nhờ vậy, tỉ lệ người dùng nhấn vào quảng cáo trên Google cao hơn đối thủ Yahoo! từ 50 – 100% và chiếm giữ tới 70% thị phần quảng cáo trả tiền. Đầu tiên (1996), Google là một công trình nghiên cứu của Larry Page và Sergey Brin, hai nghiên cứu sinh tại trường Đại học Stanford. Họ có giả thuyết cho rằng một công cụ tìm kiếm dựa vào phân tích các liên hệ giữa các website Sinh viên Nguyễn Văn Phú CTL701 22
- Đồ án tốt nghiệp sẽ đem lại kết quả tốt hơn cách đang được hiện hành lúc bấy giờ (1996). Đầu tiên nó được gọi là BackRub (Gãi lưng) tại vì hệ thống này dùng các liên kết đến để ước tính tầm quan trọng của trang. Page và Brin tin rằng những trang có nhiều liên kết đến nhất từ các trang thích hợp khác sẽ là những trang thích hợp nhất. Họ đã quyết định thử nghiệm giả thuyết trong nghiên cứu của họ, tạo nền móng cho công cụ Google hiện đại bây giờ ( Tên miền www.google.com được đăng ký ngày 15 tháng 9 năm 1997. Họ chính thức thành lập công tyGoogle, Inc. ngày 7 tháng 9 năm 1998 tại một ga ra của nhà Esther Wojcicki (cũng là nhân viên thứ 16 của Google, Phó Chủ tịch cấp cao, phụ trách bộ phận quảng cáo) tại Menlo Park, California. Trong tháng 2 năm 1999, trụ sở dọn đến Palo Alto, là thành phố có nhiều trụ sở công ty công nghệ khác. Sau khi đổi chỗ hai lần nữa vì công ty quá lớn, trụ sở nay được đặt tại Mountain View, California tại địa chỉ 1600 Amphitheater Parkway vào năm 2003. Công cụ tìm kiếm Google được nhiều người ủng hộ và sử dụng vì nó có một cách trình bày gọn và đơn giản cũng như đem lại kết quả thích hợp và nâng cao. Trong năm 2000, Google đã bắt đầu bán quảng cáo bằng từ khóa để đem lại kết quả thích hợp hơn cho người dùng. Những quảng cáo này chỉ dùng văn chứ không dùng hình để giữ chất đơn giản của trang và tránh sự lộn xộn và đồng thời để trang được hiển thị nhanh hơn. Google nhận được bằng sáng chế cho kỹ thuật sắp xếp trang web PageRank (ngày 4 tháng 9 năm 2001). Bằng đưa quyền cho Đại học Stanford và liệt kê Larry Page là người sáng chế.Trong tháng 2 năm 2003 Google mua được Pyra Labs, công ty chủ của Blogger, một trong những website xuất bản weblog lớn nhất. Đầu năm 2004, khi Google ở tột đỉnh, Google đã xử lý trên 80% số lượng tìm kiếm trên Internet qua website của họ và các website của khách hàng như Yahoo!, AOL, và CNN. Sau khi Yahoo! bỏ Google để dùng kỹ thuật họ tự sáng chế vào tháng 2 năm 2004, số này đã bị tuột xuống.Phương châm của Google là "Không làm ác" (Don't be evil). Biểu trưng của họ có khi được sửa đổi một cách dí dỏm vào dịp những ngày đặc biệt như ngày lễ hay sinh nhật của một nhân vật quan trọng. Giao diện của Google gồm trên 100 ngôn ngữ, kể cả tiếng Việt và một số ngôn ngữ dí dỏm như tiếng Klingon và tiếng Leet. Vào ngày Cá tháng tư (tiếng Pháp: poisson d'avril, tiếng Anh: April Fool's Day) Google thường tung ra nhiều tin hài hước về công ty. Sự phát triển: Khi thị trường ban đầu của công ty là trên thị trường web, Google đã bắt đầu thử nghiệm ở một số thị trường khác, ví dụ như Phát thanh hoặc Xuất bản. Sinh viên Nguyễn Văn Phú CTL701 23
- Đồ án tốt nghiệp Ngày 17-1-2006, Google công bố rằng công ty đã mua lại công ty quảng cáo phát thanh dMarc, công ty đã sử dụng một hệ thống tự động, cho phép các công ty quảng cáo trên radio. Điều này sẽ giúp Google kết hợp 2 kênh quảng cáo truyền thông là Internet và Radio, với khả năng của Google, nhắm thẳng vào tâm lý khách hàng. Google cũng bắt đầu thử nghiệm bán quảng cáo trên các kênh quảng cáo offline của công ty, như trên báo và tạp chí, với các quảng cáo được lựa chon trên Chicago-Sun Times. Họ đã lấp được một chỗ trống không bán được trên tờ báo mà trước đấy thường được dùng vào việc quảng cáo nhà. Google được đưa vào danh sách 500 S&P index ngày 30 tháng 3 năm 2006, chiếm vị trí của Burlington Resources, một nhà sản xuất dầu chính ở Houston. 1.7 Vai trò của facebook và google Hiện nay phần lớn dân số thế giới biết sử dụng internet và trong đó mỗi người đều có cho minh it nhất một tài khoản facebook hoặc google. Facebook là mạng xã hội lớn nhất hiện nay với hơn 1,15 tỉ người dùng.Việt Nam đang là nước đứng thứ 16 trên thế giới về tỷ lệ tăng trưởng lượng người sử dụng Facebook. Đến tháng 8/2013, tại Việt Nam đã có 19,6 triệu người dùng Facebook, chiếm 21,42% dân số và chiếm tới 71,4% người sử dụng Internet.Mỗi ngày có hơn 3 triệu người dùng Facebook tại Việt Nam / Facebook là mạng xã hội số 1 ở Việt Nam / "Lộn xộn" ngôi thứ mạng xã hội ở Việt Nam / Mạng xã hội Việt "hụt hơi" trước Facebook Việt Nam đang là nước đứng thứ 16 trên thế giới về tỷ lệ tăng trưởng lượng người sử dụng Facebook tính đến tháng 7/2013.Những con số ấn tượng trong kết quả nghiên cứu của Socialbakers & SocialTimes.Me -2013 vừa được công bố tại Hội thảo Toàn cảnh CNTT-TT Việt Nam lần thứ 18 - VIO 2013 diễn ra ở TP.HCM. Có thể nói Facebook vẫn đang phát triển mạnh tại Việt Nam: chỉ sau gần 1 năm, tổng lượng người dùng Facebook đã tăng gấp hơn 2 lần. Quay lại thời điểm cách đây gần 1 năm, thống kê nghiên cứu từ WeAreSocial về thị trường Internet Việt Nam cho biết, tính đến tháng 10/2012, với 8,5 triệu thành viên, Facebook đã vượt qua Zing Me (8,2 triệu thành viên) để trở thành mạng xã hội có nhiều người dùng nhất Việt Nam. Tính trên toàn thế giới, Việt Nam là quốc gia mà Facebook có thị phần tăng trưởng nhanh nhất, với tốc độ 146% trong 6 tháng (từ tháng 5 - 10/2012), trung bình cứ 3 giây Sinh viên Nguyễn Văn Phú CTL701 24
- Đồ án tốt nghiệp thì Facebook có 1 người dùng Việt Nam mới.Mặc dù bị xem là một thất bại trên lĩnh vực mạng xã hội của Google, nhưng Google+ đã bất ngờ vượt mặt Twitter để trở thành mạng xã hội lớn thứ 2 trên toàn cầu, chỉ đứng sau Facebook. Theo báo cáo vừa được công bố của hãng nghiên cứu thị trường internet Global Web Index (Anh) thì mạng xã hội Google+ đã có bước nhảy vọt trong thời gian qua để trở thành mạng xã hội lớn thứ 2 trên thế giới, vượt qua “tiểu blog” Twitter, tuy nhiên vẫn kém xa so với Facebook.Google+ hiện đã đạt đến 359 triệu người dùng hoạt động hàng tháng, đạt tốc độ tăng trưởng 33% mỗi năm.Những người trong độ tuổi 45 đến 54 đã gia tăng mức độ sử dụng Google+ thêm 56% kể từ năm 2012. Điều ít người nhớ là Google+ mới chỉ có mặt trên thị trường được khoảng chưa đầy 3 năm, vì vậy đây chắc chắn là một thành công trên nhiều cấp độ. Giới công nghệ dự đoán vào năm 2016 Google+ sẽ vượt qua Facebook về phương diện "chia sẻ xã hội".Vì thế, với thực tế này thì Google hẳn rất hài lòng với với khoản tiền khoảng 500 triệu USD đầu tư ban đầu đã bỏ vào Google+. Như vậy việc sử dụng đăng nhập người dùng qua tài khoản google hoặc facebook có thể mang lại sự tiện lợi nhanh chóng cho người dùng trong việc không phải khai nhận các thông tin đăng ký tài khoản dài và phức tạp. Thay vào đó chỉ cần người dùng có một tài khoản facebook hoặc google là có thể đăng nhập vào các website, ứng dụng Đã có rất nhiều các trang web đã sử dụng tính năng đăng nhập bằng tài khoản facebook, google vào ứng dụng web như: Do đó nghiên cứu kỹ thuật cho phép đăng ký người dùng qua tài khoản facebook và google là việc có ý nghĩa, có tính ứng dụng cao. Chính vì sự tiện lợi của việc dùng đăng nhập bằng tài khoản facebook và goolge đồ án sẽ nghiên cứu các kỹ thật sau: Facebook: Làm thế nào để sử dụng các hàm API để thực hiện xác thực tài khoản người dùng, lưu thông tin của người dùng. Đăng ký tài khoản facebook thành developer. Sinh viên Nguyễn Văn Phú CTL701 25
- Đồ án tốt nghiệp Tạo APP để lấy App ID và App Secret. Thực hiện xác thực tài khoản cho người dung. Google: Tạo google app để lấy client ID Thực hiện xác thực Sinh viên Nguyễn Văn Phú CTL701 26
- Đồ án tốt nghiệp CHƢƠNG 2 XÁC THỰC NGƢỜI DÙNG BẰNG TÀI KHOẢN FACEBOOK Trong chương này sẽ tìm hiểu về một số các khái niệm cơ bản của facebook. Cách thức làm sao để có thể xác thực tài khoản người dùng bằng facebook cũng như lấy các thông tin để ghi cơ sở dữ liệu 2.1 Một số khái niệm cơ bản. 2.1.1 Access Token Key là gì? Khi kết nối đến một app trên facebook, người dùng sẽ được yêu cầu cung cấp các quyền mà app đó cần. Sau đó, một khóa truy cập sẽ được tạo ra để nhận dạng người đó. Khi người đó gửi một hành động lên facebook thông qua app thì facebook sẽ kiểm chứng lại bằng khóa đã được cung cấp lúc kết nối xem hành động đó có được phép hay không. Khóa đó gọi là Access Token key. Access Token Key là một chuỗi ký tự và số, có tính phân biệt duy nhất đối với từng người dùng, từng app, từng fanpage và bên trong nó đã bao gồm những thông tin về quyền đã được người sử dụng chấp nhận lúc kết nối. Vì lý do an toàn, bảo mật và chính xác nên mõi hành động được gửi đến facebook thông qua app đến Open Graph đều được kiểm chứng bằng Access Token key. 2.1.2 Facebook Platform là gì? Platform(nền tảng)trong lĩnh vực lập trình được hiểu như là một hệ thống bao gồm nhiều tiện ích, hỗ trợ, dữ liệu, công cụ, dùng cho việc lập trình và tùy chỉnh thông tin từ những nhà phát triển bên ngoài. Việc lập trình trên một platform là nhằm mục đích tác động đến những tiện ích, hỗ trợ, dữ liệu, mà hệ thống platform đó cung cấp. Một hệ thống platform cung cấp cho những nhà phát triển bên ngoài thường là dưới hình thức các API(Application Programming Interface). Những API này làm nhiệm vụ mô tả, điều hướng và chỉ ra chính xác cách thức để những ứng dụng từ bên ngoài tác động đến ứng dụng nội tại. Facebook Platform là một hệ thống cung cấp cho những nhà phát triển bên ngoài những công cụ và cách thức để có thể tác động đến hệ thống dữ liệu của Sinh viên Nguyễn Văn Phú CTL701 27
- Đồ án tốt nghiệp facebook. Việc tác động này bao gồm những việc như lấy, tùy chỉnh, thêm mới, thống kê, các thông tin trên facebook. 2.1.3 Facebook Social Plugin là gì? Social Plugin là công cụ giúp bạn hiển thị những đối tượng của facebook như nút Like, comment, Send, Follow, ngay trên website của bạn. Mỗi đối tượng đó sẽ bị gắn liền với một địa chỉ URL xác định. Facebook sẽ dùng URL đó để phần biệt và thống kê sự quan tâm của người dùng đến nó.Sử dụng những Social Plugin thì không cần đến Access Token Key, tất cả những gì bạn cần là học cách chèn nó vào webisite và cung cấp cho nó một URL. 2.1.4 Graph API PHP session cho phép lưu trữ dữ liệu của người dùng trên server để sử dụng ở các lần sau ( như username, thông tin đặt hàng, ).Các thông tin session này chỉ là tạm thời và thường bị xoá đi ngay khi người dùng rời khỏi trang web đã dùng session. Mỗi session sẽ được cấp một định danh (ID) khác nhau và nội dung được lưu trong thư mục thiết lập trong file php.ini (tham số session.save_path).Session hoạt động bằng cách tạo 1 chuỗi unique (UID) cho từng vistore và chứa thông tin dựa trên ID đó. Facebook Graph API là cách chủ yếu để lấy dữ liệu vào và ra khỏi đồ thị xã hội của Facebook. Đó là một HTTP API dựa trên mức độ thấp mà bạn có thể sử dụng để truy vấn dữ liệu, gửi những câu chuyện mới, tải lên hình ảnh và một loạt các nhiệm vụ khác mà một ứng dụng có thể cần phải làm. 2.1.5 Session Cookie và Session là hai phương pháp sử dụng để quản lý các phiên làm việc giữa người sử dụng và hệ thống Cookie là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy người sử dụng. Nó được trình duyệt gửi ngược lên lại server mỗi khi browser tải 1 trang web từ server. Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào Website trên server. Mỗi Website có thể lưu trữ những thông tin khác nhau trong cookie, ví dụ thời điểm lần cuối ta ghé thăm Website, đánh dấu ta đã login hay chưa, v.v Cookie được tạo ra bởi Website và gửi tới browser, do vậy 2 Website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gửi tới browser. Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào 1 Website sẽ nhận được 2 cookie khác nhau. Sinh viên Nguyễn Văn Phú CTL701 28
- Đồ án tốt nghiệp Để thiết lập cookie ta sử dụng cú pháp: Setcookie("tên cookie","giá trị", thời gian sống) Tên cookie là tên mà chúng ta đặt cho phiên làm việc. Giá trị là thông số của tên cookie. Ví dụ: setcookie("name","admin",time()+3600); Để sử dụng lại cookie vừa thiết lập, chúng ta sử dụng cú pháp: Cú pháp: $_COOKIE["tên cookies"] Tên cookie là tên mà chúng ta thiết lập phía trên. Để hủy 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau: Cú pháp: setcookie("Tên cookie") Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi Dùng thời gian hết hạn cookie là thời điểm trong quá khứ. Ví dụ: setcookie("name","admin",time()- 3600); Session là khoảng thời gian người dùng giao tiếp với ứng dụng. Một session được bắt đầu khi người sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi người sử dụng thoát khỏi ứng dụng. Mỗi session sẽ có được cấp một định danh (ID) khác nhau và nội dung được lưu trong thư mục thiết lập trong file php.ini (tham số session.save_path). Session được lưu hoàn toàn trên serve, do vậy tính chất bảo mật cao, các website hiện tại thường dùng session để lưu thông tin người dùng sau khi đăng nhập. Để thiết lập 1 session sử dụng cú pháp: session_start(). Đoạn code này phải được nằm trên các kịch bản HTML. Hoặc những lệnh echo, printf. Để thiết lập 1 giá trị session, ngoài việc cho phép bắt đầu thực thi session, còn phải đăng ký 1 giá trị session. Để tiện cho việc gán giá trị cho session đó. Cú pháp như sau: session_register("Name") Sinh viên Nguyễn Văn Phú CTL701 29
- Đồ án tốt nghiệp Khi bạn tạo 1 biến và lưu nó vào 1 session để muốn dùng nó sau này, tuy nhiên, trước khi dùng biến session đó phải kiểm tra nó đã được khởi tạo hay chưa.Thao tác này được thực hiện thông qua hàm isset, isset là 1 hàm kiểm tra bất kì biến nào và nó đã dc khởi tạo và gán giá trị hay chưa. Qua những ví dụ trên có thể tạo 1 bộ đếm đơn giản cho 1 trang bằng cách sử dùng isset để kiểm tra nó đa dc tạo hay chưa và gán giá trị cho nó. Ví dụ: Trong lần chạy đầu tiền của trangm câu lệnh If sẽ trả về false vì chưa có biến session [views] nào được tạo cả. tuy nhiên, khi refresh lại trang đó, thì câu lệnh if sẽ trả về giá trị true và biến đếm counter sẽ tăng lên 1 đơn vị. và sẽ tăng cho mỗi lần chạy của trang đó lên 1 2.1.6 Một số hàm thường dùng Hàm isset() trong PHP Hàm isset() được dùng để kiểm tra một biến nào đó đã được khởi tạo trong bộ nhớ của máy tính hay chưa, nếu nó đã khởi tạo (tồn tại) thì sẽ trả về TRUE và ngược lại sẽ trả về FALSE. If (isset($session)) { echo đã tồn tại session; } else { echo session chua tồn tại; } Sinh viên Nguyễn Văn Phú CTL701 30
- Đồ án tốt nghiệp Trong quá trình biên dịch nếu trong code có sử dụng một biến không tồn tại thì trình biên dịch sẽ ngưng xử lý và thông báo lỗi ngay, chính vì vậy thông thường những trường hợp không chắc chắn là biến đó luôn tồn tại thì trước khi sử dụng hãy kiểm tra nó. Biến siêu toàn cục Một số biến được xác định trước trong PHP là siêu toàn cục, điều này có nghĩa là nó luôn luôn được truy cập, không giới hạn - và bạn có thể truy cập nó trong bất cứ hàm nào, lớp nào hoặc file mà không cần làm điều gì đặc biệt. Những biến siêu toàn cục trong PHP là: $_GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION $_GET Phương thức GET có cú pháp như sau: $_GET['tên biến']; Trong đó: tên biến là biến được đưa từ trang này tới trang khác thông qua address bar của trình duyệt. Tại sao lại như thế? Vì phương thứcGET có tác dụng lấy dữ liệu của các biến trên thanh address của trình duyệt $_POST Phương thức POSTkhông giống như GET. Các thông tin được người dùng nhập vào sẽ không được hiển thị trong địa chỉ mà sẽ được truyền ẩn (người dùng không thể nhìn thấy) đến file php. Và tất nhiên để lấy các giá trị đó thì sẽ dùng $_POST[„index‟]. Với index là tên (name) của phần tử mà người dùng nhập dữ liệu. Như trong ví dụ từ đầu bài tới giờ đó là fname và age. $_SERVER Ngoài các thông tin trình duyệt gửi lên thông qua các con đường POST, GET, COOKIES, cũng có thể thu được một số thông tin khác có liên quan đến trình duyệt cũng như các thông số liên quan đến máy chủ như: đường dẫn, địa chỉ IP, phiên bản Sinh viên Nguyễn Văn Phú CTL701 31
- Đồ án tốt nghiệp Các thông tin này được lưu trữ trong biến $_SERVER (đối với các phiên bản mới) hoặc $HTTP_SERVER_VARS (đối với các phiên bản cũ hơn bản 4.1.0): $_SERVER['HTTP_HOST'] / $_SERVER['SERVER_NAME']: Chứa tên của máy chủ host, nơi mà đoạn script được thực thi. $_SERVER['PHP_SELF']: Tên file nằm trên folder gốc của website. Ví dụ: biến $_SERVER['PHP_SELF'] trong script đặt tại địa chỉ. $_SERVER['DOCUMENT_ROOT']: Folder gốc của website, nơi mà file script đang được thực thi. $_SERVER['HTTP_USER_AGENT'] : Cho biết trình duyệt mà user đang dùng. $_SERVER['HTTP_REFERER']: địa chỉ của trang web mà từ đó user link đến trang này. $_SERVER['REMOTE_ADDR']: Địa chỉ của máy client, nơi người sử dụng đang duyệt web. $_SERVER['SERVER_SOFTWARE']: Chuỗi định danh của máy chủ, thường được cấp trong phần header khi trả lời các yêu cầu từ máy khách. $_SERVER['SCRIPT_FILENAME']: Đường dẫn tuyệt đối của file script đang chạy 2.1.7 Oauth OAuth cung cấp các ứng dụng client một 'bảo đảm truy cập phân quyền' cho tài nguyên máy chủ thay mặt cho một chủ sở hữu tài nguyên. Nó chỉ định một quy trình cho chủ sở hữu nguồn tài nguyên cho phép truy cập của bên thứ ba để nguồn tài nguyên máy chủ của họ mà không chia sẻ thông tin của họ. Được thiết kế đặc biệt để làm việc với Hypertext TransferProtocol (HTTP), OAuth cơ bản cho phép các thẻ truy cập sẽ được phát hành cho khách hàng của bên thứ ba bởi một máy chủ ủy quyền, với sự chấp thuận của chủ sở hữu tài nguyên, hoặc người dùng cuối. Các khách hàng sau đó sử dụng các thẻ truy cập để truy cập các tài nguyên được bảo vệ được tổ chức bởi các máy chủ tài nguyên. OAuth thường được sử dụng như là một cách để người sử dụng Internet để đăng nhập vào các trang web của bên thứ ba sử dụng Microsoft, Google, Facebook hoặc Twitter tài khoản của họ mà không lộ họ mật khẩu. OAuth 2.0 là sự phát triển tiếp theo của giao thức OAuth và không tương thích ngược với OAuth 1.0. OAuth 2.0 tập trung vào khách hàng phát triển đơn giản trong khi cung cấp ủy quyền cụ thể chảy cho các ứng dụng web, các ứng dụng máy tính để bàn, điện thoại di động, và các thiết bị phòng khách. Các đặc điểm kỹ thuật và RFC Sinh viên Nguyễn Văn Phú CTL701 32
- Đồ án tốt nghiệp liên quan được phát triển bởi IETF OAuth WG; khung chính đã được công bố vào tháng Mười năm 2012. (Nó được dự kiến sẽ được hoàn tất vào cuối năm 2010, theo Eran Hammer Tuy nhiên, do. quan điểm trái ngược nhau về sự tiến hóa của OAuth, Hammer rời nhóm làm việc. ). Graph API của Facebook chỉ hỗ trợ OAuth 2.0. Google hỗ trợ OAuth 2.0 như các cơ chế xác thực được đề nghị cho tất cả các hàm API. Năm 2011 Microsoft đã được thêm vào OAuth 2.0 thử nghiệm hỗ trợ cho các API của họ. 2.2 Xác thự bằng tài khoản Facebook 2.2.1 Tạo Facebook App để lấy App ID và secret key Bước 1: Đăng nhập và đăng ký tài khoản Facebook thành devoloper. Để đăng ký tài khoản facebook thành developer: Truy cập vào thanh Menu chọn My APPs và kích vào Register as a Developer Sau đó Facebook yêu cầu đồng ý với các quy định của Facebook. Tiếp theochọn vào nút như hình bên dưới và tiếp tục Sinh viên Nguyễn Văn Phú CTL701 33
- Đồ án tốt nghiệp Bước 2: Xác nhận tài khoản bằng số điện thoại Đến bước này FB sẽ cần xác nhận tài khoản qua số điện thoại. Có 2 cách là nhận tin nhắn SMS từ Facebook hoặc 1 cuộc gọi tự động với voice là giọng đọc dãy số xác nhận. Nhập số điện thoại vào. Ở đây sẽ chọn Send as Text để nhận tin nhắn văn bản cho nhanh. Sau khi chọn đăng ký Facebook sẽ gửi lại mã xác nhận vào chính số điện thoại đã đăng ký. Nhập dãy số nhận được vào ô mã xác nhận rồi click nút Đăng ký để tiếp tục. Sinh viên Nguyễn Văn Phú CTL701 34
- Đồ án tốt nghiệp Sinh viên Nguyễn Văn Phú CTL701 35
- Đồ án tốt nghiệp Nếu thành công sẽ nhận được thông báo như hình dưới: Bước 3: Tạo App mới. Click chuột vào phần menu My Apps, chọn Add a New App Sinh viên Nguyễn Văn Phú CTL701 36
- Đồ án tốt nghiệp Facebook sẽ hỏi là muốn tạo App cho ứng dụng nào(Nếu làm ứng dụng cho website thì chọn như hình bên dưới). Tiếp theo hãy nhập tên cho App, xong bấm chọn Create New Facebook App ID. Sinh viên Nguyễn Văn Phú CTL701 37
- Đồ án tốt nghiệp Sau đó sẽ xuất hiện như hình dưới: Tiếp sao đó chọn Skip quick start Facebook sẽ chuyển hướng sang trang quản lý thông tin và cấu hình app Sau đó Click nút Show trong khung App Secrect để thấy dãy mã này. Sinh viên Nguyễn Văn Phú CTL701 38
- Đồ án tốt nghiệp Vậy đã có App ID và App Secret để khai báo cho ứng dụng trong website. Để bật App lên và sử dụng được phải chọn bấm vào menu Setting bên trái như hình sau: Sau khi chon add platform sẽ xuất hiện bảng chọn platform (ở đây chọn Website ) Sinh viên Nguyễn Văn Phú CTL701 39
- Đồ án tốt nghiệp Sinh viên Nguyễn Văn Phú CTL701 40
- Đồ án tốt nghiệp Tiếp đó cần phải khai báo Contact Email và Site URL cũng như Mobile Site URL để có thể bật App lên để sử dụng , sau khi điền các thông tin đó xong chọn lưu lại như hình sau. Tiếp tục bấm vào menu bên trái chọn Status and Review.Click như hình dưới để bật APP. Sau đó sẽ thấy App đèn xanh hiện lên vậy là App đã hoạt động được. 2.2.2 Quy Trình xác thực người dùng bằng tài khoản facebook Để xác thực bằng facebook sẽ trải qua các bước cơ bản như sau: Đầu tiên, từ trang web gửi 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 sẽ dùng để đăng nhập vào hệ thống). Thực ra ở bước này sẽ chuyển hướng người dùng đến trang xác thực của facebook. Sinh viên Nguyễn Văn Phú CTL701 41
- Đồ án tốt nghiệp Gọi hộp thoại facebook login Để gọi hộp thoại đăng nhập tài bằng tài khoản Facebook sử dụng đoạn mã sau: Khi người dung click chọn vào đăng nhập bằng tài khoản Facebook thì hộp thoại yêu cầu đăng nhập bằng tài khoản Facebook được gọi ra (Nếu người dùng chưa đăng nhập faceook) như hình dưới: Sau khi người dùng đăng nhập xong sẽ nhận được thông báo yêu cầu xác thực tài khoản và cấp quyền cho ứng dụng lấy thông tin tài khoản của người dung. Sinh viên Nguyễn Văn Phú CTL701 42
- Đồ án tốt nghiệp Sinh viên Nguyễn Văn Phú CTL701 43
- Đồ án tốt nghiệp Xử lý đăng nhập Đầu tiên phải nạp một số SDK cần sử dụng : có thể dowload SDK tại Khởi tạo các SDK với App_id và App secret đã tạo trước đó. FacebookSession::setDefaultApplication(your app id, your app secret); Đối với hầu hết các trang web sẽ sử dụng các FacebookRedirectLoginHelper. Tạo ra các URL đăng nhập để chuyển hướng truy cập với phương thức getLoginUrl () chuyển hướng chúng, và sau đó xử lý các phản hồi từ Facebook với phương thức getSessionFromRedirect(), trong đó trả về một FacebookSession. Nếu ứng dụng web sử dụng Facebook Login trên back-end sẽ cần phải chuyển hướng truy cập đến một URL vào Facebook để bắt đầu một yêu cầu đăng nhập. Facebook sau đó chuyển hướng người dùng tới URL ứng dụng gọi lại , cung cấp dữ liệu ra. Lớp helper này sẽ tạo ra các URL đăng nhập cho bạn, và có thể xử lý và xác nhận các dữ liệu từ Facebook Sinh viên Nguyễn Văn Phú CTL701 44
- Đồ án tốt nghiệp $helper = new FacebookRedirectLoginHelper(FB_REDIRECT_URI); Xử lý dữ liệu chuyển hướng từ Facebook, nếu có. Trả về một FacebookSession hoặc null $session = $helper->getSessionFromRedirect(); Lấy dừ liệu trả về từ facebook và ghi vào data base Lấy access token bằng getToken(); if(isset($session)){ $_SESSION['token'] = $session->getToken(); $request = new FacebookRequest($session, 'GET', '/me'); $response = $request->execute(); $graph = $response->getGraphObject(GraphUser::className()); $data = $graph->asArray(); $id = $graph->getId(); $image = " ".$id."/picture?width=100"; $data['image'] = $image; $user_obj->fb_login($data); } Thêm bình luận bằng facebook vào web Để thêm comment vào trang web cần thực hiên các bước. Đăng nhập vào tài khoản facebook Sau đó nhấn vào link sau Tiếp đó click Docs chọn Social Plugins Sinh viên Nguyễn Văn Phú CTL701 45
- Đồ án tốt nghiệp Tiếp đó chọn comments tại đây điền các thông tin như URL to comment on : Trang web hiển thị comments Width: Độ rộng của khung comment(Dơn vị pixel) Number of Posts: Số comment sẽ hiển thị. Sinh viên Nguyễn Văn Phú CTL701 46
- Đồ án tốt nghiệp Sau đó nhấn GET CODE sẽ nhận được một đoạn code như sau và them vào trên trang web một lần, tốt nhất là ngay sau khi mở thẻ (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/vi_VN/sdk.js#xfbml=1&version=v2.3&appId=145941693436 9289"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); Sau đó thêm đoạn code sau vào nơi muốn hiển thị lời bình luận. Sinh viên Nguyễn Văn Phú CTL701 47
- Đồ án tốt nghiệp Sau khi chèn code vào chạy trang web sẽ xuất hiện hộp bình luận như hình sau: Sinh viên Nguyễn Văn Phú CTL701 48
- Đồ án tốt nghiệp CHƢƠNG 3 XÁC THỰC NGƢỜI DÙNG BẰNG TÀI KHOẢN GOOGLE Trong chương này sẽ tìm hiểu làm thế nòa để có thể xác thực người dùng bằng tài khoản google cũng như đăng nhập website bằng tài khoản của google 3.1 Tạo Google App Trước tiên cần phải tạo ra Google App để có được Google Oauth Client ID và Client Secret Google sẽ yêu cầu đăng nhập. Sau khi đã đăng nhập click vào nút Create Project ở góc trên bên trái để tạo app Tiếp đo sẽ nhập projec name và chọn create Sinh viên Nguyễn Văn Phú CTL701 49
- Đồ án tốt nghiệp Bây giờ bấm vào các dự án (CultivatingHappyness OAath 2), bạn chỉ cần tạo ra bây giờ. Để tích hợp Google OAuth 2 xác thực trong ứng dụng web cần phải bật Google+ API. Vì vậy, nhấp chuột vào một nút Enable API (Overview và Enable một API) và biến Google+ api như trong hình dưới đây hoặc để enale Google+ API xin vui lòng click vào APIs&auth và chọn API. Nó sẽ liệt kê tất cả các API, giờ đây cho phép Google+ API. Sinh viên Nguyễn Văn Phú CTL701 50
- Đồ án tốt nghiệp Bây giờ bấm vào API &auth -> Credentials để tạo client ID Tiếp đó hãy chọn Web application và click configure consent screen như hình dưới Sinh viên Nguyễn Văn Phú CTL701 51
- Đồ án tốt nghiệp Sau đó phải điền một số thông tin như sau. Sinh viên Nguyễn Văn Phú CTL701 52
- Đồ án tốt nghiệp Sau khi nhấn Save sẽ xuất hiện bảng và làm tiếp theo hình dưới đây. Khi hoàn thành xong sẽ nhận được kết quả như hình dưới: Sinh viên Nguyễn Văn Phú CTL701 53
- Đồ án tốt nghiệp 3.2Xác thực ngƣời dùng bằng tài khoản google Gọi hộp thoại đăng nhập và gửi yêu cầu xác thực Có một số cách để thực hiện yêu cầu này, và chúng khác nhau dựa vào loại ứng dụng đang xây dựng. Ví dụ, một ứng dụng JavaScript có thể yêu cầu một thẻ truy cập bằng cách sử dụng một trình duyệt chuyển hướng đến Google, trong khi một ứng dụng được cài đặt trên một thiết bị mà không có người sử dụng trình duyệt yêu cầu dịch vụ web. Một số yêu cầu đòi hỏi một bước xác thực mà người dùng đăng nhập bằng tài khoản Google của họ. Sau khi đăng nhập, người dùng được hỏi liệu họ có sẵn sàng để cấp các quyền mà ứng dụng của bạn được yêu cầu. Quá trình này được gọi là người sử dụng đồng ý.Nếu người sử dụng cấp cho phép, Google Authorization Server gửi ứng dụng access token (hoặc một mã số mà ứng dụng bạn có thể sử dụng để có được một thẻ truy cập). Nếu người dùng không cấp phép, các máy chủ trả về lỗi. Khi người dùng chọn đăng nhập bằng tài khoản google một hhọp thoại đăng nhập sẽ đc gọi ra (Nếu người dùng chưa đăng nhâp google). Trình tự cấp phép bắt đầu khi ứng dụng chuyển hướng trình duyệt tới một URL Google; URL bao gồm các tham số truy vấn mà chỉ ra các loại hình truy cập được yêu cầu. Như trong các tình huống khác, Google xử lý xác thực người sử dụng, lựa chọn phiên, và người sử dụng đồng ý. Kết quả là một mã số, mà Google trả về cho ứng dụng của bạn trong một chuỗi truy vấn. Sau khi nhận được mã uỷ quyền, ứng dụng của bạn có thể trao đổi mã (cùng với một ID của khách hàng và khách hàng bí mật) cho một access token, và trong một số trường hợp, một thẻ refresh. Sau đó ứng dụng có thể sử dụng các thẻ truy cập để truy cập vào một API Google. Nếu một thẻ làm mới là hiện tại trong việc trao đổi mã uỷ quyền, sau đó nó có thể được sử dụng để có được thẻ truy cập mới bất cứ lúc nào. Điều này được gọi là truy cập offline, bởi vì người dùng không cần phải có mặt tại các trình duyệt khi ứng dụng có được một thẻ truy cập mới. Trình tự truy vấn token tới google như hình sau: Sinh viên Nguyễn Văn Phú CTL701 54
- Đồ án tốt nghiệp Hình3.2.1 Quy trình truy vấn token tới google Gọi hộp thoại login. Đầu tiên, từ trang web gửi 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 sẽ dùng để đăng nhập vào hệ thống). Thực ra ở bước này sẽ chuyển hướng người dùng đến trang xác thực của google . Sinh viên Nguyễn Văn Phú CTL701 55
- Đồ án tốt nghiệp Hình 3.2.2 Hộp thoại yêu cầu đăng nhập tài khoản google Sinh viên Nguyễn Văn Phú CTL701 56
- Đồ án tốt nghiệp Sau ki người dùng đăng nhập Google sẽ gửi yêu cầu xác thực tài khoản và cấp quyền truy cập một số thông tin tài khoản google của người dùng Hình 3.2.3 Xác nhận của người dùng cho ứng dụng truy cập thông tin tài khoản Xử lý đăng nhập Khi người dùng chấp nhận cho phép sử dụng thông tin tài khoản của người dùng tiếp đó kiểm tra giá trị trả về từ google qua đối tương “code”. Lấy access token bằng getAccessToken() if(isset($_GET['code'])) { $client->authenticate(); // Authenticate $_SESSION['access_token'] = $client->getAccessToken(); // Lấy access token header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); } Sinh viên Nguyễn Văn Phú CTL701 57
- Đồ án tốt nghiệp if(isset($_SESSION['access_token'])) { $client->setAccessToken($_SESSION['access_token']);} if ($client->getAccessToken()) { $_SESSION['access_token'] = $client->getAccessToken(); $user = $oauth2->userinfo->get(); try { $user_obj->google_login( $user ); }catch (Exception $e) { $error = $e->getMessage(); } } Tìm kiếm trong CSDL xem đã có tài khoản người dùng chưa $query = "SELECT user_id, name, email, created FROM users where email = '$email' and social_id = '$social_id' "; $result = mysqli_query($this->_con, $query); $data = mysqli_fetch_assoc($result); $count = mysqli_num_rows($result); if( $count == 1){ $_SESSION = $data; $_SESSION['logged_in'] = true; return true; Sinh viên Nguyễn Văn Phú CTL701 58
- Đồ án tốt nghiệp Nếu chưa thực hiện thêm tài khoản vào CSDL và đăng nhập cho người dùng. $query = "INSERT INTO users (user_id, name, email, social_id, picture, created) VALUES (NULL, '$name', '$email', '$social_id', '$picture', CURRENT_TIMESTAMP)"; if(mysqli_query($this->_con, $query)); $query = "SELECT user_id, name, email, created FROM users where email = '$email' and social_id = '$social_id' "; $result = mysqli_query($this->_con, $query); $data = mysqli_fetch_assoc($result); $count = mysqli_num_rows($result); if( $count == 1){ $_SESSION = $data; $_SESSION['logged_in'] = true; return true; }else{ throw new Exception( LOGIN_FAIL ); Sinh viên Nguyễn Văn Phú CTL701 59
- Đồ án tốt nghiệp Chƣơng 4. HỆ THỐNG THỬ NGHIỆM 4.1Môi trƣơng làm việc Chương trình chạy thử nghiệm trên môi trường máy tính các nhân Yêu cầu máy tính có kết nối internet Máy tính đã cài đặt xampp để chạy chương trình trên môi trường localhost 4.2Ngôn ngữ thiết kế chƣơng trình PHP và MYSQL Xampp 1.8.2 4.3Một sốảnh minh họa. Giao diện Trang chủ Sinh viên Nguyễn Văn Phú CTL701 60
- Đồ án tốt nghiệp Hình 4.3.1 Giao diện trang chủ của web hài vui Hình ảnh cho hộp thoại yêu cầu đăng nhập bằng tài khoản facebook Hình 4.3.2 Hộp thoại đăng nhập bằng tài khoản faceboook Hình ảnh cho yêu cầu xác thực tài khoản và cấp phép cho ứng dụng truy cập thông tin tài khoản của người dùng Sinh viên Nguyễn Văn Phú CTL701 61
- Đồ án tốt nghiệp Hình 4.3.3 Xác nhận của người dùng cho ứng dụng truy cập thông tin tài khoản Giao diện cho phép bình luận bằng tài khoản facebook Sinh viên Nguyễn Văn Phú CTL701 62
- Đồ án tốt nghiệp Hình 4.3.4 Bình luận bằng tài khoản faceboook Sinh viên Nguyễn Văn Phú CTL701 63
- Đồ án tốt nghiệp Kết luận Đồ án tìm hiểu kỹ thuật đăng ký người dùng bằng tài khoản facebook và google Qua quá trình thực hiện đồ án, em đã tổng hợp lại được các kiến thức trong thời gian đã học tại Trường. Đồng thời, em đã tìm hiểu và nắm được quy trình đăng ký người dùng cho website bằng tài khoản facebook và google Đồ án đã làm hầu hết các bước để có thể đăng ký người dùng bằng tài khoản facebook và google.Nhưng cùng với đó vẫn còn một số khiếm khuyết, giao diện còn xấu,một số chức năng vẫn cưa hoàn thiện tốt. Hướng phát triển tiếp theo của đồ án là khắc phục các khiếm khuyết trên cũng như phát triển các ứng dụng cho phép người dùng sử dụng tài khoản có sãn như facebook ,google, twitte để tham đăng nhập vào hệ thống. Sinh viên Nguyễn Văn Phú CTL701 64
- Đồ án tốt nghiệp Tài liệu tham khảo 1) 2) web/v2.1 3) 4) 5) 6) www.W3school.com Sinh viên Nguyễn Văn Phú CTL701 65