• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

HUMMOR

New Member
Chắc hẳn bạn đã quen với việc sử dụng Login with Facebook trên những trang web hay những diễn đàn khác. Nó đã phần nào giải quyết được vấn đề 1 lượng lớn người sử dụng gặp vấn đề hay không thích đăng kí, đăng nhập theo kiểu truyền thống. Với kiểu Login này, không chỉ đem lại sự tiện lợi, nhanh chóng mà thông tin người dùng cũng được đồng bộ 1 cách chính xác.

Đúng như dự kiến, WKI sẽ cho ra mắt phiên bản đầu tiên của chức năng Login with Facebook tích hợp với Wapka.
Tuy ra đời chậm hơn những mã nguồn khác nhưng không sao, mọi thứ mới chỉ là khởi đầu trên con đường phát triển Wapka mà tôi cùng các bạn sẽ đi tiếp. Và hôm nay, mùng 8/3/2015 chúng ta sẽ cùng đánh dấu 1 mốc quan trọng trên con đường phát triển đó với tính năng mới không thua kém những mã nguồn khác. Đó chính là "Login with Facebook for Wapka".

Trước khi chính thức share ra, chúng tôi rất mong các bạn giữ lại nguồn bài viết khi các bạn leech đi hoặc là chỉnh sửa nó. Và lời đầu tiên, cũng xin gửi lời cám ơn tới bạn Duy Poppy đã chia sẻ 1 bài viết vô cùng hữu ích để Login with Facebook for Wapka được ra đời vào hôm nay, cám ơn bạn.

DEMO: http://wapkainternational.com

Bắt đầu:
Sau các lần thử nghiệm và lắng nghe nhiều ý kiến thì chúng tôi kết luận lại sẽ làm trên registration_site, ổn định hơn, dễ hơn và nhanh hơn.

Phần 1. Tạo App Facebook
Các bạn có thể tham khảo các bài hướng dẫn tạo App facebook trên mạng, nhưng với 1 vài lưu ý sau:

Ghi nhớ ID và Secret của App, ví dụ:
ID: ***
Secret: YYY

Tại phần Settings > Basic các bạn thiết lập như trong hình tùy ý theo website của bạn.
Site URLMobile Site URL phải là tên miền trang web của bạn.
Hiện tại tôi chưa thử với tên miền .Tk hay với tên miền gốc. Vì vậy nếu như FB chặn các tên miền này thì đành chịu thôi.

Tại phần App Details các bạn thiết lập như trong hình
Bạn bắt buộc phải upload đủ IconsPromotional Images theo đúng kích thước mà FB quy định.

Tại phần Status & Review bạn kích hoạt chức năng công khai cho ứng dụng để tất cả mọi người có thể sử dụng được bằng cách:
Tại dòng Do you want to make this app and all its live features available to the general public? các bạn chọn Yes
Một số bạn thắc mắc là không chọn Yes được là do phần Details các bạn chưa làm đầy đủ thông tin, icons và images
*Như vậy bước cấu hình cho App đã xong!


Phần 2. Login with FB Button and Classes
1. Nút đăng nhập qua Facebook
Đặt code sau tại Wap2 > Style for Login/Registration > Login page và những nơi mà bạn muốn
Code:
<a href="https://www.facebook.com/dialog/oauth?client_id=***&redirect_uri=http://wap.domain/registration_site.php"><img src="http://i.imgur.com/0WuoJhT.png" alt="Login with Facebook" style="max-width:50%"/></a>
Lưu ý:
- ***ID của App mà bạn đã ghi nhớ ở trên.
- http://wap.domain Bạn phải ghi đúng như ở mục Site URLMobile Site URL đã nói ở trên
2. Tạo classes clear
Wap2 > Classes settings > Add new class >
Class name
điền clear
Đánh dấu ô own elements sau đó Continue
Viết display:none; vào rồi ấn Add class



Phần 3. Edit texts
Vào Edit texts > Login/Registration
Tìm và sửa lại dòng như sau:
is already registered, choose a different one!
Code:
is already registered, choose a different one<input type="hidden" name="reged" value="reged"/>
Dùng tiếng việt cũng đc, nhưng phải viết thêm input như trên.



Phần 4. Login with FB Code System
Tại site Bottom for Registration chúng ta làm những công việc sau:

Post code này lên đầu tiên của site Bottom RegSet visibility: A
Code:
<img src="https://www.facebook.com/?_rdr" style="display:none"/>
Tiếp sau đó post code này ngay bên dưới Set visibility: A
Code:
<script language="javascript"> document.getElementsByName('pr_var[300]')[0].value=:stats-ru:*1+1; idmem=:stats-ru:*1+1; </script>
<script language="javascript"> if(':getid-url:'.match(/(split)/ig)) {document.write('<style>body{display:none}</style>'); document.title='An error has occurred...'; window.location.href='login_0.xhtml'} </script>
<script language="javascript"> if(':getid-url:'.match(/(code|get-id)/ig)) {document.write('<style>body{display:none}</style>'); document.title='Login With FaceBook...';} </script>

<input type="hidden" value="&" name="&"/>
<script language="javascript"> &=document.getElementsByName('&')[0].value; curl=':getid-url:'.split('code=')[1]; if(':getid-url:'.match(/(get-code)/ig)) {} else {if(':getid-url:'.match(/(\?code=)/ig)) {window.location.href='registration_site.php?get-code='+curl+&+'get-mode=1';}} </script>
Tiếp sau đó post code này ở cuối cùng site Bottom Reg
Set visibility: AVisibility by URL: GET với get-mode = 1
Code:
<div name="fblogin"><div/></div><div/><span/><span/>
Đến đây, chúng ta bắt đầu tới việc xuất dữ liệu và lấy thông tin tài khoản Facebook của người dùng. Ở PHP thì CURL có thể làm được điều này. Còn với Wapka, chúng ta đã có Exloader. Cái hay ở Exloader mà tôi không ngờ tới là nó có thể vượt qua được cả kết nối bảo mật https và lấy dữ liệu từ đó. Đây là 1 điểm mạnh của Exloader mà Wapka đem lại.

Quay lại bài viết, tiếp theo chúng ta tạo 1 Exloader với cấu hình như sau (Exloader1):
Set visibility: NVisibility by URL: GET với get-mode = 1
Set class: clear
URL:
Code:
https://graph.facebook.com/oauth/access_token?client_id=***&redirect_uri=http://wap.domain/registration_site.php&client_secret=YYYb&:time-beg:YmdHis:time-end:&code=:get-code:#_=_
Part: 1-10
Lưu ý:
- ***IDYYYSecret của App mà bạn đã ghi nhớ ở trên.
- http://wap.domain Bạn phải ghi đúng như ở mục Site URLMobile Site URL đã nói ở trên

Sau đó post code sau ngay bên dưới Exloader1:
Set visibility: AVisibility by URL: GET với get-mode = 1
Code:
<div name="okfblogin"></div>
<script language="javascript"> fblogin=document.getElementsByName('fblogin')[0].innerHTML; fblogin=fblogin.split('access_token=')[1].split('&ex')[0];  if(':getid-url:'.match(/(get-code2)/ig)) {} else {window.location.href='registration_site.php?get-code2='+fblogin+&+'get-mode=2';} </script>
Tiếp theo post tiếp code này ngay bên dưới:
Set visibility: AVisibility by URL: GET với get-mode = 2
Code:
<div name="fblogin2"><div/></div><div/><span/><span/>
Sau đó ta tạo thêm 1 Exloader nữa (Exloader2):
Set visibility: AVisibility by URL: GET với get-mode = 2
Set class: clear
URL:
Code:
https://graph.facebook.com/me?access_token=:get-code2:
Part: 1-20

Tiếp theo post code này ngay bên dưới Exloader 2:
Set visibility: A
Code:
<img src="https://www.facebook.com/?_rdr" style="display:none"/>
<input type="hidden" name="reged" value="none"/>
<input type="hidden" value="&" name="&"/> 
<script language="javascript"> &=document.getElementsByName('&')[0].value; </script>

<script language="javascript"> mc=document.getElementsByName('mchs')[0].value; token=document.getElementsByName('d_token')[0].value; reg=document.getElementsByName('reged')[0].value; fblogin2=document.getElementsByName('fblogin2')[0].innerHTML; 
fblogin2=fblogin2.replace(/\<div>/ig,'');
fblogin2=fblogin2.replace(/\<\/div>/ig,'');
fblogin2=fblogin2.replace(/\<span>/ig,'');
fblogin2=fblogin2.replace(/\<\/span>/ig,'');
fblogin2=fblogin2.split('<script')[0];
fblogin2=fblogin2.replace(/\n/ig,'');
fblogin2=fblogin2.replace(/\"/ig,'');
txt=fblogin2;
txt=txt.replace(/\\u00e0/ig,'a'); txt=txt.replace(/\\u00e1/ig,'a'); txt=txt.replace(/\\u1ea3/ig,'a'); txt=txt.replace(/\\u00e3/ig,'a'); txt=txt.replace(/\\u1ea1/ig,'a'); txt=txt.replace(/\\u0103/ig,'a'); txt=txt.replace(/\\u1eb1/ig,'a'); txt=txt.replace(/\\u1eaf/ig,'a'); txt=txt.replace(/\\u1eb3/ig,'a'); txt=txt.replace(/\\u1eb5/ig,'a'); txt=txt.replace(/\\u1eb7/ig,'a'); txt=txt.replace(/\\u00e2/ig,'a'); txt=txt.replace(/\\u1ea7/ig,'a'); txt=txt.replace(/\\u1ea5/ig,'a'); txt=txt.replace(/\\u1ea9/ig,'a'); txt=txt.replace(/\\u1eab/ig,'a'); txt=txt.replace(/\\u1ead/ig,'a'); txt=txt.replace(/\\u0111/ig,'d'); txt=txt.replace(/\\u00e8/ig,'e'); txt=txt.replace(/\\u00e9/ig,'e'); txt=txt.replace(/\\u1ebb/ig,'e'); txt=txt.replace(/\\u1ebd/ig,'e'); txt=txt.replace(/\\u1eb9/ig,'e'); txt=txt.replace(/\\u00ea/ig,'e'); txt=txt.replace(/\\u1ec1/ig,'e'); txt=txt.replace(/\\u1ebf/ig,'e'); txt=txt.replace(/\\u1ec3/ig,'e'); txt=txt.replace(/\\u1ec5/ig,'e'); txt=txt.replace(/\\u1ec7/ig,'e'); txt=txt.replace(/\\u00f2/ig,'o'); txt=txt.replace(/\\u00f3/ig,'o'); txt=txt.replace(/\\u1ecf/ig,'o'); txt=txt.replace(/\\u00f5/ig,'o');  txt=txt.replace(/\\u1ecd/ig,'o'); txt=txt.replace(/\\u00f4/ig,'o'); txt=txt.replace(/\\u1ed3/ig,'o');  txt=txt.replace(/\\u1ed1/ig,'o'); txt=txt.replace(/\\u1ed5/ig,'o'); txt=txt.replace(/\\u1ed7/ig,'o');  txt=txt.replace(/\\u1ed9/ig,'o'); txt=txt.replace(/\\u01a1/ig,'o'); txt=txt.replace(/\\u1edd/ig,'o');  txt=txt.replace(/\\u1edb/ig,'o'); txt=txt.replace(/\\u1edf/ig,'o'); txt=txt.replace(/\\u1ee1/ig,'o');  txt=txt.replace(/\\u1ee3/ig,'o'); txt=txt.replace(/\\u00f9/ig,'u'); txt=txt.replace(/\\u00fa/ig,'u'); txt=txt.replace(/\\u1ee7/ig,'u'); txt=txt.replace(/\\u0169/ig,'u'); txt=txt.replace(/\\u1ee5/ig,'u'); txt=txt.replace(/\\u01b0/ig,'u'); txt=txt.replace(/\\u1eeb/ig,'u'); txt=txt.replace(/\\u1ee9/ig,'u'); txt=txt.replace(/\\u1eed/ig,'u'); txt=txt.replace(/\\u1eef/ig,'u'); txt=txt.replace(/\\u1ef1/ig,'u'); txt=txt.replace(/\\u00c0/ig,'A'); txt=txt.replace(/\\u00c1/ig,'A'); txt=txt.replace(/\\u1ea2/ig,'A'); txt=txt.replace(/\\u00c3/ig,'A'); txt=txt.replace(/\\u1ea0/ig,'A'); txt=txt.replace(/\\u0102/ig,'A'); txt=txt.replace(/\\u1eb0/ig,'A'); txt=txt.replace(/\\u1eae/ig,'A'); txt=txt.replace(/\\u1eb2/ig,'A'); txt=txt.replace(/\\u1eb4/ig,'A'); txt=txt.replace(/\\u1eb6/ig,'A'); txt=txt.replace(/\\u00c2/ig,'A'); txt=txt.replace(/\\u1ea6/ig,'A'); txt=txt.replace(/\\u1ea4/ig,'A'); txt=txt.replace(/\\u1ea8/ig,'A'); txt=txt.replace(/\\u1eaa/ig,'A'); txt=txt.replace(/\\u1eac/ig,'A'); txt=txt.replace(/\\u0110/ig,'D'); txt=txt.replace(/\\u00c8/ig,'E'); txt=txt.replace(/\\u00c9/ig,'E'); txt=txt.replace(/\\u1eba/ig,'E'); txt=txt.replace(/\\u1ebc/ig,'E'); txt=txt.replace(/\\u1eb8/ig,'E'); txt=txt.replace(/\\u00ca/ig,'E'); txt=txt.replace(/\\u1ec0/ig,'E'); txt=txt.replace(/\\u1ebe/ig,'E'); txt=txt.replace(/\\u1ec2/ig,'E'); txt=txt.replace(/\\u1ec4/ig,'E'); txt=txt.replace(/\\u1ec6/ig,'E'); txt=txt.replace(/\\u00d2/ig,'O'); txt=txt.replace(/\\u00d3/ig,'O'); txt=txt.replace(/\\u1ece/ig,'O'); txt=txt.replace(/\\u00d5/ig,'O'); txt=txt.replace(/\\u1ec6/ig,'O'); txt=txt.replace(/\\u00d4/ig,'O'); txt=txt.replace(/\\u1ed2/ig,'O'); txt=txt.replace(/\\u1ed0/ig,'O'); txt=txt.replace(/\\u1ed4/ig,'O'); txt=txt.replace(/\\u1ed6/ig,'O'); txt=txt.replace(/\\u1ed8/ig,'O'); txt=txt.replace(/\\u01a0/ig,'O'); txt=txt.replace(/\\u1edc/ig,'O'); txt=txt.replace(/\\u1eda/ig,'O'); txt=txt.replace(/\\u1ede/ig,'O'); txt=txt.replace(/\\u1ee0/ig,'O'); txt=txt.replace(/\\u1ee2/ig,'O'); txt=txt.replace(/\\u00d9/ig,'U'); txt=txt.replace(/\\u00da/ig,'U'); txt=txt.replace(/\\u1ee6/ig,'U'); txt=txt.replace(/\\u0168/ig,'U'); txt=txt.replace(/\\u1ee4/ig,'U'); txt=txt.replace(/\\u01af/ig,'U'); txt=txt.replace(/\\u1eea/ig,'U'); txt=txt.replace(/\\u1ee8/ig,'U'); txt=txt.replace(/\\u1eec/ig,'U'); txt=txt.replace(/\\u1eee/ig,'U'); txt=txt.replace(/\\u1ef0/ig,'U'); txt=txt.replace(/\\u00ec/ig,'i'); txt=txt.replace(/\\u00ed/ig,'i'); txt=txt.replace(/\\u1ec9/ig,'i'); txt=txt.replace(/\\u0129/ig,'i'); txt=txt.replace(/\\u1ecb/ig,'i'); txt=txt.replace(/\\u00cc/ig,'I'); txt=txt.replace(/\\u00cd/ig,'I'); txt=txt.replace(/\\u1ec8/ig,'I'); txt=txt.replace(/\\u0128/ig,'I'); txt=txt.replace(/\\u1eca/ig,'I'); txt=txt.replace(/\\u1ef3/ig,'y'); txt=txt.replace(/\\u00fd/ig,'y'); txt=txt.replace(/\\u1ef7/ig,'y'); txt=txt.replace(/\\u1ef9/ig,'y'); txt=txt.replace(/\\u1ef5/ig,'y'); txt=txt.replace(/\\u1ef2/ig,'Y'); txt=txt.replace(/\\u00dd/ig,'Y'); txt=txt.replace(/\\u1ef6/ig,'Y'); txt=txt.replace(/\\u1ef8/ig,'Y'); txt=txt.replace(/\\u1ef4/ig,'Y'); txt=txt.replace(/\\u0040/ig,'@');

var id=txt.split('id:')[1].split(',first_name')[0];
if(txt.match(/(middle_name)/ig)){
var locate=txt.split('locale:')[1].split(',middle_name')[0];
var midname=txt.split('middle_name:')[1].split(',name')[0];
} else {
var locate=txt.split('locale:')[1].split(',name')[0];
var midname='';
}
var fullname=txt.split(',name:')[1].split(',timezone')[0];
var firstname=txt.split('first_name:')[1].split(',gender')[0];
var gender=txt.split('gender:')[1].split(',last_name')[0];
var lastname=txt.split('last_name:')[1].split(',link')[0];
var fname=firstname+lastname;
fname=fname.replace(/\ /ig,'');
fname=fname.replace(/\'/ig,"");
iid=id.split('');
subfname=0; for(i=0;i<iid.length;i++){ subfname=iid[i]*1+subfname;}

document.write('<meta http-equiv="refresh" content="0;registration_site.php?d_token='+token+'&do_id=56&reg_login='+fname+subfname+'&reg_pas1='+id+'&reg_pas2='+id+'&pr_var[1]='+fullname+'&pr_var[2]='+gender+'&pr_var[5]=1&pr_var[8]=1&pr_var[9]=1970&pr_var[3]=http%3A%2F%2F&pr_var[6]='+locate+'&pr_var[4]=None&pr_var[7]=WapkaInternational.Com!&pr_var[10]=Hey guys! I am using Login with Facebook produce by Wapkainternational.Com!&pr_var[300]='+idmem+'&mchs='+mc+'&get-id='+id+'&submit=OK">');
</script>
<script language="javascript">
login=document.getElementsByName('reg_login')[0].value;
reg=document.getElementsByName('reged')[0].value; 
if(reg=='reged') {window.location.href='login_site.xhtml?do_id=56'+&+'wu_login='+login+&+'wu_heslo=:get-id:'+&+'get-mode=2'+&+'log_submit=OK';}
</script>
Ghi chú:
- pr_var[1]: Họ và tên
- pr_var[2]: *********
- pr_var[3]: Trang web
- pr_var[4]: Nghề nghiệp
- pr_var[5]: Ngày sinh
- pr_var[6]: Quốc gia
- pr_var[7]: Chữ ký
- pr_var[8]: Tháng sinh
- pr_var[9]: Năm sinh
- pr_var[10]: Giới thiệu bản thân
- pr_var[300]: ID của mỗi người
- do_id=56: Bạn có thể sửa lại thành site mà bạn muốn người dùng chuyển tới sau khi đăng nhập qua Facebook​
Bạn có thể thêm var hoặc sửa lại var sao cho phù hợp, muốn chỉnh sửa đòi hỏi bạn phải viết và hiểu những code trên.

Như vậy, WKI đã hướng dẫn xong cách tạo chức năng Login with Facebook dành riêng cho Wapka.
Với bài hướng dẫn này bạn có thể làm tương tự để có thể Login with Google hay Login with Twitter v.v...
Mọi ý kiến, thắc mắc hay khiếu nại vui lòng đăng ngay tại topic này để được giải đáp!
Copy, edit vui lòng giữ lại nguồn bài viết. Xin cám ơn!
Chúc các bạn thành công!
With Wapka, No thing is impossible!
Login with Facebook Ver 1 produce and develop by WapkaInternational.Com - 8/3/2015
 

Facebook Comments

Thread starter Similar threads Forum Replies Date
T Hỏi Cách Tích Hợp Login FB Cho Site PHP 5
Admin Temporary Passwords by BOP5 (Allow admins to login as any user without user password) Add-ons 0
Admin Microsoft bổ sung hàm Facebook Login APIs cho các lập trình viên Windows 8 và Windows Phone 8 Tin tức CNTT 0
Admin [OzzModz] Log Failed Login Add-ons 0
Admin Hàm php login 1 site khác PHP 0
T Help không login vao wapka được Thảo luận wap việt 2
S [Mod] Bàn phím ảo khi nhập password login cho VBB 4.x Add-ons 1
Lee_Jin Hỏi Có ai login vào xtgem được không, mình login mãi mà không được Wap builder, wapego, xtgem, wen.ru, wapka, wap4 3
Lee_Jin Hỏi Sao mấy cái wapftp không login được nhỉ mọi người Hỏi đáp về domain & hosting 7
Admin TW7S - Change the look of the Login/Register in header Vbb tutorial 0
Admin Share form login đẹp cho vbb Style vbb 0
Admin Share index login giống zing me cho vbb HTML & CSS 0
Admin Metro login v.1.5 - Trang đăng nhập theo phong cách metro cực đẹp Mã nguồn web 0
Admin Wrong username or password. You have used up your failed login quota! Xenforo 1
C Share Script auto login cho wapka Wap builder, wapego, xtgem, wen.ru, wapka, wap4 0
S tool check SQLi , XSS , Admin login Local attack 0
N Share Sleek & Modern Login Form All Shared Scripts 0
Admin [Plugin] WP Login Pro Wordpress 0
Admin Login As User by Waindigo 1.0.2a Xenforo 0
S Login theo kiểu Xenforo Add-ons 0
Admin Hướng dẫn LightBox Login đẹp - Edit by nhokli.nolove Vbb tutorial 0
S Share Lightbox login đẹp - edit by nhokli.nolove Style vbb 0
Yeukodamnoi Hỏi login vào host cp11 như thế nào Hỏi đáp về domain & hosting 2
M Help login domain tại melbourneit Hỏi đáp về domain & hosting 15
Admin 1 site login được nhiều site Thảo luận wap việt 0
Admin Xenforo Login Panel by SCANU Add-ons 0
Admin Share Lightbox Login Và Góp Ý VBB Đầy Đủ Add-ons 0
S Hướng dẫn Login VPS bằng Putty Tunniller VPS & Dedicated Server 12
P Lam sao de vo hieu hoa auto login xtgem Wap builder, wapego, xtgem, wen.ru, wapka, wap4 4
K Brute Login Local attack 0
Admin Share index login phong cách Google (Full PSD) HTML & CSS 0
P Share Xenforo Login Panel - Mod login giống như Xenforo Add-ons 1
Admin Multiple account login detector - Mod phát hiện thành viên clone trong forum Vbulletin 0
Admin Gửi mail thông báo cho Admin khi có người login vào AdminCP nhưng không thành công Add-ons 0
Admin Fake login - Đăng nhập vào forum vbb không cần pass Hacking 7
Dungcaro [you] và anh em vào giúp em fix lỗi login đi johncms4.x.x với Johncms 49
Similar threads




































New posts New threads New resources

Top