2016-07-14 20 views
0

Mein Ziel ist es, Benutzerkontext wie E-Mail oder ID an Sentry zu übergeben, damit ich sehen kann, welche Benutzer etwas kaputt gemacht haben.Benutzer_Kontext kann nicht mit Laravel an Sentry übergeben werden 5.1

Ich habe ein Stück Global Middleware konfiguriert, um Benutzerkontext zu meinen Sentry-Fehlern hinzuzufügen. Hier ist die Klasse:

 class AddUserToSentry 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 

     if(Auth::user()) 
     { 
      //dd(Auth::user()->email); 
      app('sentry')->user_context(array(
       'email' => Auth::user()->email 
      )); 
     } 
     return $next($request); 
    } 
} 

In meinem handler.php ich habe:

/** 
* Report or log an exception. 
* 
* This is a great spot to send exceptions to Sentry, Bugsnag, etc. 
* 
* @param \Exception $e 
* @return void 
*/ 
public function report(Exception $e) 
{ 

    if ($this->shouldReport($e)) { 
     app('sentry')->captureException($e); 

    } 
    parent::report($e); 
} 

Was mir fehlt, diese Arbeit zu machen? Alles, was ich für den Benutzerkontext bekomme, ist die IP-Adresse, die in meinem Fall nicht sehr hilfreich ist.

Vielen Dank,

Josh

Antwort

0

Sie benötigen Laravel die Auth Fassade in Ihrem Controller, um den Zugang zu etwa so:

Use Auth;

1

hier ein komplettes Beispiel ist die source stammt aus der offiziellen Sentry-Dokumentation. Um zu vermeiden, dass Sie use Auth; hinzufügen müssen, können Sie einfach die auth() Hilfsfunktion verwenden.

namespace App\Http\Middleware; 

use Closure; 

class SentryContext 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure     $next 
    * 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if (app()->bound('sentry')) { 
      /** @var \Raven_Client $sentry */ 
      $sentry = app('sentry'); 

      // Add user context 
      if (auth()->check()) { 
       $sentry->user_context(['id' => auth()->user()->id, 'email' => auth()->user()->email]); 
      } 

      // Add tags context 
      // $sentry->tags_context(['foo' => 'bar']); 
     } 

     return $next($request); 
    } 
}