2017-10-30 6 views
1

API 라우트에 대해 passport 인증을 사용하는 laravel 5.5를 사용하고 있습니다. 무기명 토큰을 사용하고 있습니다. 문제점은 인증되지 않은 대신 이전 생성 된 토큰이 허용된다는 것입니다. 단계 :Laravel passport 새 토큰을 생성 할 때 인증 토큰이 만료됩니다.

  • 하나의 무기 토큰을 만듭니다. 그걸 써. 잘 작동합니다.
  • 로그 아웃하지 않고 다른 토큰을 작성하면 정상적으로 작동합니다.
  • 이제 내가 만든 첫 번째 토큰을 사용하면 작동합니다. 그것은 작동하지 않아야하지만 받아 들여집니다.

나는 이것을 달성 할 수있는 방법이 있습니까? 미리 감사드립니다.

답변

2

가능한 해결책은 다음과 같습니다. 새 토큰을 만들기 전에 확인하고 이전 토큰이있는 경우이 토큰을 삭제하십시오. 이렇게하려면 다음을 수행

OauthAccessToken

업데이트 지금

/** 
* 1:n zu access token, we need to logout users 
* 
* @return \Illuminate\Database\Eloquent\Relations\HasMany 
*/ 
public function accessTokens() 
{ 
    return $this->hasMany(OauthAccessToken::class); 
} 

이 확인하고 사용자로부터 모든 토큰을 삭제할 수 있습니다 다음 귀하의 사용자 모델이라는 이름의 모델을 만들기

if ($user->accessTokens->count() > 0) { 
    $user->accessTokens()->delete(); 
} 
+0

안녕 Matz 감사합니다. 나는 이것을 가지고 'oauth_access_tokens'에서 토큰을 제거했다. 잘 작동합니다. 토큰을 새로 고침으로써 이것을 달성 할 수 없습니까? – Nilesh

+0

나는 아직 시도하지 않았다;) 아마 내가 나중에 할 것이다. – Matz