Ich löste es meine eigene Middleware zu schaffen: RedirectCrawlers
<?php
namespace App\Http\Middleware;
use App\Tournament;
use Closure;
use Illuminate\Support\Facades\Route;
class RedirectCrawlers
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$crawlers = [
'facebookexternalhit/1.1',
'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)',
'Facebot',
'Twitterbot',
];
$userAgent = $request->header('User-Agent');
if (str_contains($userAgent, $crawlers)) {
switch (Route::getCurrentRoute()->getPath()) {
case "tournaments/{tournament}/register":
$tournament = Tournament::where('slug', $request->tournament)->first();
return view('public/register', compact('tournament'));
}
}
return $next($request);
}
}
Dann habe ich eine resources/Ansichten/public/register.blade.php
<meta property="og:title" content="{{trans('core.competitors_register') }}"/>
<meta name="description" content="Registrate en el torneo {{ $tournament->name }}"/>
<meta property="og:description" content="Registrate en el torneo {{ $tournament->name }}"/>
<meta property="og:type" content="website"/>
<meta property="og:image" content="https://kendozone.com/wp-content/uploads/2016/04/home.jpg"/>
<meta property="og:image:secure_url" content="https://kendozone.com/wp-content/uploads/2016/04/home.jpg"/>
<meta property="og:url" content="{{$request->url()}}"/>
<meta property="fb:app_id" content="780774498699579"/>
<meta name=" twitter:title" content="{{trans('core.competitors_register')}}"/>
<meta name="twitter:image" content="https://kendozone.com/wp-content/uploads/2016/04/home.jpg"/>
<meta name="twitter:card" content="summary"/>
<meta name="twitter:description" content="Registrate en el torneo {{ $tournament->name }}"/>
, die eine öffentliche Seite ist, dass nur haben Informationen benötigt, um Facebook zu teilen.
dann in App \ Http \ Kernel.php füge ich die Strecke in $ middlewareGroups in 'Web', bevor Authentifizieren Middleware, so dass sie es der Öffentlichkeit Seite umleiten:
\App\Http\Middleware\RedirectCrawlers::class,
Lösung besteht in Stackoverflow , wie kommentiert, aber keine von ihnen für Laravel 5.3!
Hoffe es hilft!
Warum müssen Sie den Facebook Crawler erkennen? – WizKid
Versuchen Sie die login-geschützte Seite zu teilen? –
Wenn Sie Inhalte öffentlich teilen möchten, wäre es am besten, wenn dieser Inhalt auch öffentlich verfügbar wäre. Was nützt es, wenn ich einen Ihrer freigegebenen Links in meinem Newsfeed sehe, um dann auf die Anmeldeseite weitergeleitet zu werden? – CBroe