Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[展示] Facebook登陆源码,分享一下吧

[复制链接]
lifetin 发表于 2013-10-5 19:25:20 | 显示全部楼层 |阅读模式
  1. if($_G['uid'])  showmessage('go_to_home','?m=home');
  2.                        
  3.                         if( !$_G['setting']['facebook_login'] ||  !$_G['setting']['facebook_appid'] || !$_G['setting']['facebook_secret'] ) showmessage('web_not_setting_facebook');
  4.                        
  5.                         require_once ROOT_PATH.'api/facebook_login/facebook.php';       
  6.                         $facebook = new Facebook(array( 'appId'  =>$_G['setting']['facebook_appid'], 'secret' => $_G['setting']['facebook_secret']));
  7.                         $user = $facebook->getUser();                       
  8.                         if ($user) {
  9.                           try {
  10.                                 $user_profile = $facebook->api('/me');        //个人资料
  11.                                
  12.                           } catch (FacebookApiException $e) {
  13.                                 $user = null;
  14.                           }
  15.                         }

  16.                        
  17.                         if ($user) {
  18.                                 //登陆成功
  19.                                
  20.                                 $user_arr = getuserbyuid($user_profile['id'],'facebook_uid');               
  21.                                                
  22.                                 if($user_arr['uid']){        //已经注册了
  23.                                         $password = authcode($user_arr['password'],'DECODE',$user_arr['key']);
  24.                                        
  25.                                         $user = new user();                               
  26.                                         $this->login_start($user_arr['username'],$password);
  27.                                        
  28.                                 }else{        //第一次登陆,未注册
  29.                                                                 $arr = array();
  30.                                                                 $arr['username']=($user_profile['username'] ? $user_profile['username'] : $user_profile['name']);
  31.                                                                 $arr['name']=$user_profile['name'];
  32.                                                                 $arr['facebook_uid']=$user_profile['id'];
  33.                                                                 $arr['password']= random(9);//随机密码
  34.                                                                 $arr['groupid']=5;
  35.                                                                 $arr['check'] = $_G['group'][$arr['groupid']]['reg_check'];
  36.                                                                 $arr['sex'] = $user_profile['gender'] == 'female' ? 2:1;
  37.                                                                 $arr['email']=$user_profile['id'].'@facebook.com';
  38.                                                                 $arr['change_password']= 0;
  39.                                                                
  40.                                                                 //添加个人头像
  41.                                                                
  42.                                                                 //获取过来的是小头像100*50的,容易变形,暂时就不要了
  43.                                                                
  44.                                                                 /*                                                               
  45.                                                                 $picurl = "https://graph.facebook.com/".$user."/picture";
  46.                                                                 $str =  @file_get_contents($picurl);
  47.                                                                 if($str){
  48.                                                                         $save_path = 'uploads/member/'.dgmdate(TIMESTAMP,'Y/m/d/');
  49.                                                                         if(!is_dir(ROOT_PATH.$save_path)) dmkdir(ROOT_PATH.$save_path);
  50.                                                                         file_put_contents(ROOT_PATH.$save_path.$user.'.jpg',$str);
  51.                                                                         $arr['ico'] = $save_path.$user.'.jpg';
  52.                                                                 }                                                               
  53.                                                                 */
  54.                                                                
  55.                                                                 $user_action = new user();
  56.                                                                 if($user_action->reg($arr)){
  57.                                                                         $this->login_start($arr['username'],$arr['password']);
  58.                                                                 }else{
  59.                                                                         showmessage('注册失败');
  60.                                                                 }
  61.                                 }
  62.                                
  63.                         } else {
  64.                                 //未登陆
  65.                                
  66.                                 if($_GET['inajax']){                        //自动打开新窗口,在某些浏览器下会被阻止               
  67.                                         $str =str_ireplace('inajax','',$facebook->getLoginUrl());
  68.                                         include template('common/header_ajax');
  69.                                         $str = "evalscript("<script type='text/javascript'>
  70.                                                 window.open('".$str."');
  71.                                         </script>")";
  72.                                         echo $str;
  73.                                         include template('common/footer_ajax');
  74.                                 }else{
  75.                                        
  76.                                         dheader("Location:".$facebook->getLoginUrl());
  77.                                 }
  78.                         }
  79.                        
复制代码


来自群组: 山林茶社
 楼主| lifetin 发表于 2013-10-5 19:26:36 | 显示全部楼层
dsystem,做的个FB登陆功能,分享一下吧

做这些合途登陆的,没有密码是个问题,所以就自动注册一个吧.随机一下密码
下来还是用这个东江登陆的话,就自动解密密码再设置登陆..

有问题的关注一直在模仿.
回复

使用道具 举报

1314学习网 发表于 2013-10-5 23:20:29 | 显示全部楼层
支持下分享。。。
回复

使用道具 举报

calfloving 发表于 2014-12-18 13:28:08 | 显示全部楼层
怎么样,现在还在搞facebook的支持呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-26 13:00 , Processed in 0.510654 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表