Skip to content

Commit

Permalink
修复window下无法读取dev/urandom
Browse files Browse the repository at this point in the history
  • Loading branch information
vincenth520 committed Sep 28, 2017
1 parent 61431e9 commit 9840131
Show file tree
Hide file tree
Showing 5 changed files with 241 additions and 32 deletions.
2 changes: 1 addition & 1 deletion Apps/Api/Conf/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
return array(
//'配置项'=>'配置值'
'APPID' => 'wx61f7708fbb157848',
'AppSecret' => 'f860690de9733e931b4cf030bf758a71',
'AppSecret' => '57556a858121fae443f59863f9cb1cdb',
);
60 changes: 29 additions & 31 deletions Apps/Api/Controller/UserController.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,38 @@
namespace Api\Controller;
use Think\Controller;
class UserController extends Controller {
public function login(){
$json = file_get_contents("php://input");
if($json != ''){
$data = json_decode($json,true);
$sk = $this->getOpenid($data['code']);
public function login(){
$sk = $this->getOpenid(I('code'));

$u = D('User');
$user = $u->getUserInfo($sk['openid']);
if(empty($user)){ //如果第一次登陆
$UserInfo = json_decode($this->getUserInfo($sk['session_key'],$data['encryptedData'],$data['iv']),true);
unset($UserInfo['watermark']);
$u->add($UserInfo);
}
$user = $u->getUserInfo($sk['openid']);
$sk = $this->get3rdSession($sk['openid'],$sk['session_key']);
$result['user'] = $user;
$result['sk'] = $sk;
exit(json_encode($result));
$u = D('User');
$user = $u->getUserInfo($sk['openid']);
if(empty($user)){ //如果第一次登陆
$UserInfo = json_decode($this->getUserInfo($sk['session_key'],I('encryptedData'),I('iv')),true);
unset($UserInfo['watermark']);
$u->add($UserInfo);
}
$user = $u->getUserInfo($sk['openid']);
$sk = $this->get3rdSession($sk['openid'],$sk['session_key']);
$result['user'] = $user;
$result['sk'] = $sk;
exit(json_encode($result));
}

public function editUser() //修改个人信息
{
$u = D('User');
$json = file_get_contents('php://input');
$data = json_decode($json,true);
$UserData = $data['userInfo'];
$where['openId'] = vaild_sk($data['sk']);
unset($UserData['sk']);
unset($UserData['id']);
$u->where($where)->save($UserData);
$user = $u->getUserInfo($where['openId']);
$result['status'] = 1;
$result['msg'] = '修改成功';
$result['user'] = $user;
exit(json_encode($result));
$UserData = $data['userInfo'];
$where['openId'] = vaild_sk($data['sk']);
unset($UserData['sk']);
unset($UserData['id']);
$u->where($where)->save($UserData);
$user = $u->getUserInfo($where['openId']);
$result['status'] = 1;
$result['msg'] = '修改成功';
$result['user'] = $user;
exit(json_encode($result));
}

private function getUserInfo($sessionKey,$encryptedData, $iv)
Expand All @@ -56,10 +52,11 @@ private function getUserInfo($sessionKey,$encryptedData, $iv)
//获取session_key
private function getOpenid($code)
{
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=".C('APPID')."&secret=".C('AppSecret')."&js_code=".$code."&grant_type=authorization_code";
$data = file_get_contents($url);
$data = json_decode($data,true);
return $data;
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=".C('APPID')."&secret=".C('AppSecret')."&js_code=".$code."&grant_type=authorization_code";
$data = file_get_contents($url);
\Think\Log::record($data);
$data = json_decode($data,true);
return $data;
}


Expand Down Expand Up @@ -99,6 +96,7 @@ private function randomFromDev($len) {
else
{
trigger_error('Can not open /dev/urandom.');
return substr(time().MD5(time().rand()), 0, $len);
}
// convert from binary to string
$result = base64_encode($result);
Expand Down
Loading

0 comments on commit 9840131

Please sign in to comment.