加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 仅允许某些IP地址在Laravel 5.2中注册用户

发布时间:2020-12-14 19:49:47 所属栏目:大数据 来源:网络整理
导读:我试图只允许某些IP地址访问寄存器路由,但我收到类型错误: Argument 1 passed to AppHttpControllersAuthAuthController::showRegistrationForm() must be an instance of IlluminateHttpRequest,none given,called in directoryvendorlaravelfram
我试图只允许某些IP地址访问寄存器路由,但我收到类型错误:

Argument 1 passed to
AppHttpControllersAuthAuthController::showRegistrationForm() must
be an instance of IlluminateHttpRequest,none given,called in
directoryvendorlaravelframeworksrcIlluminateFoundationAuthRegistersUsers.php
on line 19

这是我在AuthController中的showRegistrationForm方法:

public function showRegistrationForm(Request $request) {
    $ip = $request->ip();

    if ($ip == "148.124.0.1") {
        return redirect("register");
    } else {
        return redirect("home");
    }
}

有谁知道我会怎么做到这一点?

而是检查控制器,请检查这种方式
php artisan make:middleware IpMiddleware

<?php

namespace AppHttpMiddleware;

use Closure;

class IpMiddleware
{

    public function handle($request,Closure $next)
    {
        if ($request->ip() != "192.168.0.155") {
        // here insted checking single ip address we can do collection of ip 
        //address in constant file and check with in_array function
            return redirect('home');
        }

        return $next($request);
    }

}

然后在app / Http / Kernel.php类的$middleware属性中添加新的中间件类.

protected $routeMiddleware = [
    'auth' => AppHttpMiddlewareAuthenticate::class,'auth.basic' => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class,'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class,'ipcheck' => AppHttpMiddlewareIp::class,];

然后将middelware应用于路线

Route::get('/',['middleware' => ['ipcheck'],function () {
    // your routes here
}]);

希望它会帮助你

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读