zoukankan      html  css  js  c++  java
  • INAPP登陆调用的FB接口

      1  public function login_get (){
      2         $this->load->helper ( 'auth' );
      3 
      4         $redirectUrl = $this->input->cookie ( 'inapp_redirect', TRUE );
      5         $redirectUrl = empty ( $redirectUrl ) ? '/index' : $redirectUrl;
      6 
      7         // 判斷是否已登入
      8         if ( $this->input->cookie ( 'inapp_auth', TRUE ) ) {
      9             delete_cookie ( 'inapp_redirect' );
     10             header ( 'Location: ' . $redirectUrl );
     11             exit;
     12         }
     13 
     14         $user = $this->facebook->getUser ();
     15         if ( $user ) { // FB 己登入
     16             // 删除 redirect cookie
     17             delete_cookie ( 'inapp_redirect' );
     18 
     19             // 取得相對應的平台 uid
     20             $params           = array();
     21             $params[ 'fbid' ] = $user;
     22             $sp               = 'CALL Member_SP_GetMemberRegInfoByFbid(?,@rtn)';
     23             $member           = $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
     24             
     25             //增加禁權的攔截
     26             $status      = $member[ 'status' ];
     27             $checkStatus = $this->checkAccessBarred ( $status );
     28             if ( ! $checkStatus )
     29             exit ();
     30 
     31             // 存在則寫 cookie
     32             if ( $error_no == _SUCCESS_ ) {
     33                 // 登入 Log
     34                 $params            = array();
     35                 $params[ 'uid' ]   = $member[ 'uid' ];
     36                 $params[ 'appid' ] = 1000000;
     37                 $sp                = 'CALL App_SP_SetAppDailyLoginLog_v2(?,?,@rtn)';
     38                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
     39 
     40                 //会员积分登录时间
     41                 $this->memberBat ( $member[ 'uid' ] );
     42                 
     43                 //记录登陆信息
     44                 $this->member_model->addAdminLoginLog ( $member[ 'uid' ], 1, $params[ 'appid' ] );
     45   
     46                 // 取得授權
     47                 $params            = array();
     48                 $params[ 'uid' ]   = $member[ 'uid' ];
     49                 $params[ 'appid' ] = 1000000;
     50                 $sp                = 'CALL App_SP_SetUserApp(?,?,@rtn)';
     51                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
     52 
     53                 // 產生 auth
     54                 $auth = $this->_genAuth ( authHelper_genUUID ( $member, $this->config->item ( 'inappKey' ) ) );
     55                 $this->_setAuth ( $auth );
     56                 header ( 'Location: ' . $redirectUrl );
     57                 exit;
     58             }
     59 
     60             // 不存在則取得 FB 相關個人資料
     61             $fbuser_profile = $this->facebook->api ( '/me' );
     62 
     63             // 寫入 Member DB
     64             $params               = array();
     65             $params[ 'fbid' ]     = $fbuser_profile[ 'id' ];
     66             $params[ 'name' ]     = empty ( $fbuser_profile[ 'name' ] ) ? '' : $fbuser_profile[ 'name' ];
     67             $params[ 'link' ]     = empty ( $fbuser_profile[ 'link' ] ) ? '' : $fbuser_profile[ 'link' ];
     68             $params[ 'birthday' ] = empty ( $fbuser_profile[ 'birthday' ] ) ? '' : $fbuser_profile[ 'birthday' ];
     69             $params[ 'gender' ]   = empty ( $fbuser_profile[ 'gender' ] ) ? '' : $fbuser_profile[ 'gender' ];
     70             $params[ 'email' ]    = empty ( $fbuser_profile[ 'email' ] ) ? '' : $fbuser_profile[ 'email' ];
     71             $params[ 'ip' ]       = $_SERVER[ "REMOTE_ADDR" ];
     72 
     73             $sp     = 'CALL Member_SP_Register(?,?,?,?,?,?,?,@rtn)';
     74             $member = $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
     75 
     76             // 註冊成功
     77             if ( $error_no == _SUCCESS_ ) {
     78                 // 登入 Log
     79                 $params            = array();
     80                 $params[ 'uid' ]   = $member[ 'uid' ];
     81                 $params[ 'appid' ] = 1000000;
     82                 $sp                = 'CALL App_SP_SetAppDailyLoginLog_v2(?,?,@rtn)';
     83                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
     84 
     85                 //会员积分登录时间
     86                 $this->memberBat ( $member[ 'uid' ] );
     87 
     88                 //记录登陆信息
     89                 $this->load->model ( 'member_model' );
     90                 $this->member_model->addAdminLoginLog ( $member[ 'uid' ], 1, $params[ 'appid' ] );
     91 
     92                 // 取得授權
     93                 $params            = array();
     94                 $params[ 'uid' ]   = $member[ 'uid' ];
     95                 $params[ 'appid' ] = 1000000;
     96                 $sp                = 'CALL App_SP_SetUserApp(?,?,@rtn)';
     97                 $this->inapp->_query_sp ( $sp, $params, $error_no, 'row' );
     98 
     99                 // 產生 auth
    100                 $auth = $this->_genAuth ( authHelper_genUUID ( $member, $this->config->item ( 'inappKey' ) ) );
    101             }
    102 
    103             header ( 'Location: ' . $redirectUrl );
    104         } else { // FB 未登入
    105             $url = $this->facebook->getLoginUrl ( array('scope'     => 'publish_stream, user_photos, email, user_birthday, user_online_presence', 'req_perms' => 5, 'fbconnect' => 0) );
    106             header ( 'Location: ' . $url );
    107         }
    108     }
  • 相关阅读:
    ORACLE数据库逐步解决ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA00132的过程
    Windows下MySQL主从复制的配置
    Windows下Git的使用
    spring boot 2 集成JWT实现api接口认证
    spring boot 2 全局统一返回RESTful风格数据、统一异常处理
    spring boot 2 + shiro 实现权限管理
    Java 密码加盐
    Java中往zip压缩包追加文件
    IntelliJ IDEA 安装、配置和使用Lombok插件
    大规模微服务单元化与高可用设计
  • 原文地址:https://www.cnblogs.com/jthb/p/3253051.html
Copyright © 2011-2022 走看看