2014-12-31 28 views
0

仅供参考:我对Laravel很新,并且尽我所能来正确地学习它。 处理使用soap服务进行身份验证的auth驱动程序。 错误尝试与验证测试时,我得到::尝试()Laravel Auth自定义驱动程序错误

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_COMPILE_ERROR) 
Declaration of Project\Providers\AuthUserProvider::retrieveByToken() must be compatible with Illuminate\Auth\UserProviderInterface::retrieveByToken($identifier, $token) 

这里是司机...

<?php namespace Project\Providers; 

use Illuminate\Auth\UserProviderInterface; 
use Illuminate\Auth\GenericUser; 
use Illuminate\Auth\UserInterface; 

class AuthUserProvider implements UserProviderInterface { 
    /** 
    * External webservice for authentication 
    */ 
    private $webservice; 
    /** 
    * The user object. 
    */ 
    private $user; 

    /** 
    * Constructor 
    * 
    * @return void 
    */ 
    public function __construct(\Project\Webservice\AuthCheckApi $webservice) 
    { 
     $this->webservice = $webservice; 
     $this->user = null; 
    } 


    /** 
    * Retrieves a user by id 
    * 
    * @param int $identifier 
    * @return mixed null|array 
    */ 
    public function retrieveByID($identifier) 
    { 
     $this->user = is_null($this->user) ? $this->webservice->find($identifier) : $this->user; 
     return $this->user; 
    } 

    /** 
    * Tries to find a user based on the credentials passed. 
    * 
    * @param array $crendtials username|password 
    * @return mixed bool|UserInterface 
    */ 
    public function retrieveByCredentials(array $credentials) 
    { 
     if(!$user = $this->webservice->byusername($credentials['username'],$credentials['password'])) return false; 

     return new GenericUser($user); 
    } 

     /** 
    * Validates the credentials passed to the ones in webservice. 
    * 
    * @param UserInterface $user 
    * @param array $credentials 
    * @return bool 
    */ 
    public function validateCredentials(\Illuminate\Auth\UserInterface $user, array $credentials) 
    { 
     $validated = $this->webservice->validateCredentials($user,$credentials['username']); 

     return true; 
    } 

     /** 
    * Needed by Laravel 4.1.26 and above 
    */ 
    public function retrieveByToken() 
    { 
    return true; 
    } 

    /** 
    * Needed by Laravel 4.1.26 and above 
    */ 
    public function updateRememberToken() 
    { 
    return false; 
    } 
} 

感谢您的帮助。

回答

1

您正在实施UserProviderInterface,所以你需要添加的接口的所有功能的完整定义,在这里你就忘记了论据,最后两个功能

public function retrieveByToken($identifier, $token) 
{ 

} 

public function updateRememberToken($user, $token) 
{ 

} 
相关问题