Yii2 AuthClient 为 Facebook 客户端设置 return 页面

Yii2 AuthClient set return page for Facebook client

我有一个 lead gen 表格,它只获取可以使用 Facebook 填写的用户信息(如姓名、性别、电子邮件)。但问题是,选择用 FB 重定向到索引页面来填写表单。如何将 return 页面设置为其他视图或操作?

public function onAuthSuccess($cliente)
{
    // TODO: fb login e retornar dados do perfil para o form
    $fb = new Facebook([
        'app_id' => MYAPPID,
        'app_secret' => MYAPPSECRET
    ]);
    try {
        $token = $cliente->getAccessToken()->getToken();
        // Returns a `Facebook\FacebookResponse` object
        $usuario = $fb->get('/me?fields=email,name,gender,age_range',
            $token)->getDecodedBody();

    } catch(Exception $e) {
        echo 'Error: ' . $e->getMessage();
        exit;
    }

    return ; // actually doesn't matter, it always end redirecting to site/index
}

授权配置:

'auth' => ['class' => yii\authclient\AuthAction::className(),'successCallback' => [$this, 'onAuthSuccess']]

在 Auth 操作配置中添加 successUrl

'successUrl'=>'url'

它是一个 public 属性 您也可以在您的函数中覆盖它的值

$this->action->successUrl = "url-with-data";

注意:这仅用于理解目的,生成动态 url 的最佳方法是使用 urlmanager