/** * * @param type $authorization_code * @return type * @throws ServerErrorHttpException */ public static function findUserUuid($authorization_code) { $code = OauthAuthorizationCode::findOne(['authorization_code' => $authorization_code]); if ($code) { return $code->user_uuid; } throw new ServerErrorHttpException('User Not Exists.', 10024); }
/** * 创建访问令牌。 * 需要客户端ID和授权码,意即该客户端已经取得用户的授权。授权码仅用于创建 * 访问令牌,使用一次后即失效。 * 访问令牌的有效期可以在全局参数中设置,通常为 86400 秒。 * @param string $client_id * @param string $authorization_code * @return string The generated access token. * @throws \yii\web\ServerErrorHttpException 设置访问令牌未成功时抛出。正常 * 情况下不会抛出该异常,如果客户端收到该错误,则应检查服务器故障。 */ public static function createAccessToken($client_id, $authorization_code) { $token = ["access_token" => self::generateAccessToken(), "expires_in" => Yii::$app->params['access_lifetime']]; $setResult = self::setAccessToken($client_id, $authorization_code, $token['access_token'], $token['expires_in']); $code = OauthAuthorizationCode::findOne(['authorization_code' => $authorization_code]); if ($code) { AuthorizationCode::expireAuthorizationCode($code); } if (!$setResult) { throw new \yii\web\ServerErrorHttpException('Access Token Failed to Issue.', 10013); } return $token; }
public function getAuthorizationCode($client_id) { $code = OauthAuthorizationCode::findOne(['client_id' => $client_id, 'user_uuid' => Yii::$app->user->identity->user_uuid]); if (!$code) { $code = new OauthAuthorizationCode(['client_id' => $client_id, 'user_uuid' => Yii::$app->user->identity->user_uuid]); } return $code; }