public function actionAuth() { $oauth = new SpeedOpenOAuth(Yii::$app->params['oauth']['appid'], Yii::$app->params['oauth']['appsecretkey']); $callbackUrl = 'http://' . Yii::$app->params['oauth']['domain'] . '/index.php?r=site/auth'; $keys = []; $keys['redirect_uri'] = $callbackUrl; if (isset($_REQUEST['code'])) { $keys['code'] = $_REQUEST['code']; try { $token = $oauth->getAccessToken('code', $keys); // echo "<br><br><br>"; // echo $oauth->getApiHost(); // echo "<br><br>request<br>"; // var_dump($_REQUEST); // echo "<br><br>tokens<br>"; // var_dump($token); // die; } catch (Exception $e) { $msg = $e->getMessage(); } if ($token && $token['code'] == 200 && isset($token['access_token'])) { $_SESSION['token'] = $token; //setcookie( 'speed_token_'.$oauth->client_id, http_build_query($token) ); setcookie('speed_token_' . Yii::$app->params['oauth']['appid'], http_build_query($token)); $user = new \app\models\User(); $user->accessToken = $token["access_token"]; $user->authKey = ''; $detail = $oauth->getUserInfo($user->accessToken); if ($detail && isset($detail['code']) && $detail['code'] == 200 && isset($detail['data']) && isset($detail['expires_in'])) { setcookie('speed_user', http_build_query($detail['data']), $detail['expires_in']); $user->id = $detail['data']['id']; $user->username = $detail['data']['name']; $user->mail = $detail['data']['mail']; echo "<br><br>user info get successfully<br>"; } Yii::$app->user->login($user); // Yii::$app->user->login( // Yii::$app->user->loginByAccessToken // Yii::$app->user->loginByCookie return $this->goHome(); } } return Yii::$app->user->loginRequired(); }