web-dev-qa-db-fra.com

Laravel 5: redirection vers un lien externe en dehors de localhost/server

Je souhaite créer une application avec l'API laravel 5 & dropbox dans laquelle je souhaite que l'API permettre/annuler-l'avertissement soit affichée lorsque vous arrivez sur la page d'accueil, et non lorsque vous cliquez sur un bouton .. J'ai essayé différentes méthodes, mais je ne pouvais `t pas le faire fonctionner.

public function start(){
        session(['user_id'=>1]);
        $dKey = 'key';
        $dSecret = 'secret';
        $appName = 'app';

        $appInfo = new Dropbox\AppInfo($dKey,$dSecret);

        //store csrf token
        $tokenStore = new  Dropbox\ArrayEntryStore($_SESSION,'dropbox-auth-csrf-token');
        //define auth details
        $this->webAuth = new Dropbox\WebAuth($appInfo,$appName,'http://localhost:8000/dropbox/finish',$tokenStore);
        $this->checkSession();
    }

    public function checkSession(){
        $users = User::where('id','=',session('user_id'))->get();

        if(isset($user[0]->dropbox_token)){

        }
        else{
            $url = $this->webAuth->start();

            //return Redirect::to($url);
            //return Redirect::away($url);
            //header('Location : '.$url);
        }

    }

Le lien dans $ url existe et est valide.

Ces (les 3 dernières méthodes commentées) sont les méthodes que j'ai essayées, y compris le renvoi de redirection ($ url), est-il possible de faire cela ou est-ce que je perds mon temps avec cela? Aidez-moi s'il vous plaît.

19
She Fu

Ce code fonctionne pour moi:

return redirect()->away('https://www.dropbox.com');

Assurez-vous également d’ajouter un retour (c'est-à-dire return $this->checkSession();) dans start().

36
smarx

Le code ci-dessous fonctionnera

return redirect()->away('http://www.Paypal.com');

Et cela fonctionnera aussi.

return redirect('http://www.Paypal.com');
4
Pankaj Makwana

Pour https et autres, utilisez ce qui suit

return redirect()->to($refererUrl);
0
Harry Bosh