Beispiel #1
0
function e_auth()
{
    if (!LfRequest::isWeixinBrowser()) {
        echo "请使用微信访问该页面";
        die;
    }
    if (!empty(session('user_id'))) {
        $user = M('e_user')->where(array('id' => session('user_id')))->find();
        if (empty($user)) {
            session_destroy();
            redirect(addons_url('Auth://Auth/Auth'));
        } else {
            return;
        }
    }
    $appid = "wxadd0d2ec0a8fe9fe";
    $appsecret = "f71b4c54f831bcde726a428caa46062c";
    $callback = GetCurUrl();
    $callback = urlencode($callback);
    if (isset($_GET['code'])) {
        $code = $_GET['code'];
        $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid . '&secret=' . $appsecret . '&code=' . $code . '&grant_type=authorization_code';
        $result = https_request($url);
        $result = json_decode($result);
        $openid = $result->openid;
        $user = M('e_user')->where(array('openid' => $openid))->find();
        if (empty($user)) {
            redirect(addons_url('Auth://Auth/Auth'));
        } else {
            session('user_id', $user['id']);
        }
    } else {
        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$callback}&response_type=code&scope=snsapi_base&state=123#wechat_redirect";
        redirect($url);
    }
}