APP微信登入 伺服器處理程式碼
阿新 • • 發佈:2018-10-31
採用框架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); }