Buenas, tengo un problema, verán, estoy desarrollando una aplicación el Laravel 5 y ya tengo la mayoría, pero tengo un problema con el sistema de recuperar contraseña, tengo ya mi controlador, mi acción, vista y FormRequest hechos y funcionan o mas o menos, el problema es que parece que en la sección de recuperar contraseña el sistema no puede leer o tiene algún problema con el token, en la vista en la sección de errores me aparece el mensaje "passwords.token" cuando ingreso el email y la contraseña nueva, pero no logro entender que es lo que pasa, aquí el código que utilizo:
AuthController.php
Código PHP:
Ver original<?php
namespace App\Http\Controllers\Lual;
use App\Http\Controllers\Controller;
use Auth;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Auth\PasswordBroker;
use Illuminate\Foundation\Auth\ResetsPasswords;
use App\Http\Requests\LoginFormRequest;
use App\Http\Requests\EmailFormRequest;
use App\Http\Requests\ResetFormRequest;
use App\Models\Usuario;
class AuthController extends Controller
{
use ResetsPasswords;
public function __construct(Guard $auth, PasswordBroker $passwords)
{
$this->auth = $auth;
$this->passwords = $passwords;
}
public function getReset($subdoman='',$token=null) {
throw new NotFoundHttpException;
}
return view('lual.auth.reset')->with('token', $token);
}
public function postReset(ResetFormRequest $request) {
$credentials = $request->only(
'email', 'password', 'password_confirmation', 'token'
);
$response = $this->passwords->reset($credentials, function($user, $password) {
$user->password = \
Hash::make($password);
$user->save();
$this->auth->login($user);
});
switch ($response)
{
case PasswordBroker::PASSWORD_RESET:
return redirect('/');
default:
return redirect()->back()
->withInput($request->only('email'))
->withErrors(['email' => trans($response)]);
}
}
public function getRegistro() {
return view('lual.auth.registro');
}
}
ResetFormRequest.php
Código PHP:
Ver original<?php namespace App\Http\Requests;
use App\Http\Requests\Request;
class ResetFormRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
'token' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed'
];
}
public function messages() {
return [
'token' => 'authLogin.token',
'email.require' => 'authLogin.emailRequire',
'email.email' => 'authLogin.emailValid',
'password.require' => 'authLogin.passRequire',
'password.confirmed' => 'authLogin.confirmed'
];
}
}
reset.blade.php
Código PHP:
Ver original@extends('lual')
@section('titulo')
{{ trans('authLogin.resetTitle') }}
@endsection
@section('css')
<link rel
="stylesheet" href
="/css/auth/login.css"> @endsection
@section('contenido')
<section class="container">
<article class="form-login">
<div class="form-content col-xs-11 col-sm-7 col-centered">
<p class="title">{{ trans('authLogin.resetTitle') }}</p>
<div class="form-error row col-xs-12 col-sm-12 col-md-8 col-md-offset-2">
<div class="icon pull-left col-md-1">
<span class="glyphicon glyphicon-warning-sign"></span>
</div>
@foreach ($errors->all() as $error)
<div class="msn pull-right col-md-11">
<p class="title">{{ trans('authLogin.errors') }}</p>
<p>{{ $error }}</p>
</div>
@endforeach
</div>
@endif
<form class="form-horizontal" action="/auth/reset" method="post">
<div class="col-xs-12 col-sm-12 col-md-8 col-md-offset-2">
<div class="form-group">
<span for="email" class="sr-only">{{ trans('authLogin.email') }}</span>
{!! Form::email('email',null,['class'=>'form-control','placeholder'=>trans('authLogin.email')]) !!}
</div>
<div class="form-group">
<span for="password" class="sr-only">{{ trans('authLogin.password') }}</span>
{!! Form::password('password',['class'=>'form-control','placeholder'=>trans('authLogin.password')]) !!}
</div>
<div class="form-group">
<span for="password_confirmation" class="sr-only">{{ trans('authLogin..password-confirm') }}</span>
{!! Form::password('password_confirmation',['class'=>'form-control','placeholder'=>trans('authLogin.password-confirm')]) !!}
</div>
<div class="form-group">
<span>{!! Form::submit(trans('authLogin.sendReset'),['class'=>'btn btn-primary']) !!}</span>
{!! Form::hidden('token', $token) !!}
{!! Form::token() !!}
</div>
</div>
</form>
</div>
</article>
</section>
@endsection
Usuario.php
Código PHP:
Ver original<?php namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class Usuario extends Model implements AuthenticatableContract, CanResetPasswordContract
{
use Authenticatable, CanResetPassword;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'usuarios';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['nombre','email', 'password'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
}
al final en postReset() si pasa el token, pero el sistema no lo detecta o no lo puede leer, el punto es que me regresa a getReset() mandando el error "passwords.token", oajalá puedan ayudarme