我已经尝试按照documentation,但我没有成功。 我需要在原始登录系统中添加一个条件
我尝试了以下内容:
export { charOrdAFactoryBase }
我的路线
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/';
public function authenticate()
{
if (Auth::attempt(['email' => $email, 'password' => $password, 'type' => 'cliente'])) {
dd('autenticate');
}
}
}
错误:
Route::post('/login', 'Auth\LoginController@login');
有谁知道我该怎么做?
-----------已决定-----------
我不知道这是否是最安全的方式,但它的工作原理如下:
ErrorException: Undefined variable: email in /var/www...
我的路线:
public function authenticate(Request $request)
{
$this->validateLogin($request);
$input=$request->all();
$password=$input['password'];
$email=$input['email'];
if (Auth::attempt(['email' => $email, 'password' => $password, 'type'=>'cliente'])) {
return redirect()->intended('/');
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
答案 0 :(得分:0)
您可以更改凭据。您不需要单独的authenticate
方法。在LoginController
中覆盖此特征中的函数:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request; //*****add this
class LoginController extends Controller {
use AuthenticatesUsers;
protected $redirectTo = '/';
**
* Get the needed authorization credentials from the request.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
protected function credentials(Request $request){
return array_merge($request->only($this->username(), 'password'), ['type' => 'cliente']);
}
}
希望它有所帮助。