Не удается перенаправить на страницу входа в пост человека - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу перенаправить на страницу входа в почтальон после истечения срока действия токена.Я добавляю данные в БД через почтальона.Он не должен позволять пользователю добавлять данные после истечения срока действия токена.Я запутался, что делать дальше.

Route api.php

Route::post('add','StudentController@student');
Route::get('login','StudentController@student');

Контроллер

class StudentController extends Controller
{
    public function student(Request $request){
        $myname=$request->get('stuname');
        $mysubject=$request->get('subject');

        $mydata=new Stuoauth();
        $mydata->addstudent($myname,$mysubject);
        /*if($mydata->expectsJson()){
            return redirect()->json(['error'=>'faild'],401);
        }
        return redirect()->guest(route(login));*/
    }
}

Модель

class Stuoauth extends Model
{
    public function addstudent($myname,$mysubject){
        \DB::table('stuoauths')->insert([
            'StudentName'=>$myname,
            'StudentSubject'=>$mysubject
        ]);
    }
}

User.php

HasApiToken добавлен в то же самое.

use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens,Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

AuthServiceProvider.php

в этом файле токен истекает время упоминания.

use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Laravel\Passport\Passport;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();
        Passport::routes();

        Passport::tokensExpireIn(now()->addMinute(1));
        Passport::refreshTokensExpireIn(now()->addMinute(2));

    }
}

миграция БД

 public function up()
    {
        Schema::create('stuoauths', function (Blueprint $table) {
            $table->increments('id');
            $table->string('StudentName');
            $table->string('StudentSubject');
        });
    }

auth.php

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],

1 Ответ

0 голосов
/ 21 сентября 2018

прикрепите промежуточное ПО в Route

Route::post('/user','StudentController@student')->middleware('auth:api');
...