2017-09-11 11 views
0

나는 Artisan의 Laravel 인증을 사용합니다. 전자 메일/비밀번호로 로그인하고 싶지만 그 전에는 웹 서비스를 호출하기를 원하므로 웹 서비스의 결과가 true를 반환하고 계속 false를 반환하면 로그인 페이지에서 오류 메시지와 함께 리디렉션됩니다. 어떻게 수행하나요?인증 전에 Laravel

+1

스택 오버플로에 오신 것을 환영합니다. [좋은 질문이 있습니까?] (https://stackoverflow.com/help/how-to-ask) 및 [Minimal, Complete, Verifiable 예제를 만드는 방법] (https : // stackoverflow)을 읽어보십시오. co.kr/help/mcve) 스택 오버 플로우 콘텐츠를 최상위 수준으로 유지하고 적절한 답변을 얻을 수있는 기회를 늘릴 수 있습니다. 지금 가지고있는 코드를 여기에 붙여주세요. – sebast26

답변

0

middleware을 사용할 수 있습니다 (예를 들어 문서에서 더 잘 이해할 수 있습니다). 웹 서비스를 호출하는 미들웨어를 app/http/middleware,

으로 작성하십시오. artisan 명령을 사용하여 미들웨어를 정의 할 수 있습니다. php artisan make:middleware Webservice

<?php 

namespace App\Http\Middleware; 

use Closure; 

class WebserviceMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     // get return value of the web service 
     $return_value = webservice.call(); 

     if (!$return_value) 
     { 
      //if return value is false define the redirect to login route 
      return redirect('/'); 
     } 

     //else let the request to be proceeded. 
     return $next($request); 
    } 
} 

그리고 다음과 같은의 $ routemiMiddleware 속성 내부를 icluding하여 미들웨어를 등록;

protected $routeMiddleware = [ 
     //other exisiting middleware 
     'webservice' => \App\Http\Middleware\WebserviceMiddleware::class, 
    ]; 

지금

Auth::routes()->middleware('webservice'); 

는 이제 웹 서비스 반환 값은, 다음과 같은 web.php 내부의 middlware 내부

Route::group(['middleware' => 'webservice'], function() { 
    Auth::routes(); 
}); 

나에 의하여를 laravel 기본 인증으로 인증 경로를 넣어 진행하기 전에 평가.

+0

당신이 더 명확한 설명을 할만한 자격이 있거나 요구 사항을 제시하면 답변을 수락 할 수 있습니다. –