1. 程式人生 > >APP微信登入 伺服器處理程式碼

APP微信登入 伺服器處理程式碼

採用框架THINKPHP5

需要客戶端傳的引數有  udid openid nickname avatar_path

 /*
     * @param 第三方微信登入
     * @param openid udid  nickname avatar_path
     */
    public function wechat_login(MemberModel $member){
        $data  = input('post.');
        if(empty($data['openid'])){
            return_error("缺少必填引數");
        }
        
$list = $member->vf_login($data); if(empty($list)){ return_msg(100,"登入失敗"); }else{ return_msg(200,'登入成功',$list); } }
 /**
     * 三方登入
     */
    public function vf_login($data){
        $info  = self::where(['openid'=>$data['openid']])->field('id,lasttime,birthday,money,sex,jifen,flag,face,nickname,icon')->find();
        
$data['token'] = generate_token($data['openid']); $data['lasttime'] = time(); $path = $data["avatar_path"]; $data["icon"] = $path; unset($data["avatar_path"]); if(empty($info)){ //如果為空 則直接寫入 $info['id'] = self::allowField(true)->insertGetId($data
); $list['nickname'] = $data['nickname']; $list['avatar_path'] = $data['icon']; }else{ $list['nickname'] = $info['nickname']; $list['avatar_path'] = !empty($info['icon'])?$info['icon']:"public/images/moren/head.png"; self::allowField(true)->where(['id'=>$info['id']])->update($data); } $list['uid'] = $info['id']; $list['token'] = $data['token']; return $list; }

 生產token方法程式碼

    /**
     *  生成TOKEN
     *  @param string $str 要進行加密的字串
     *  @return string $str 加密後的字串
     *  @author zhu
     *
     */
    function generate_token($phone){
        $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'.time().$phone;
        return md5($chars);
    }