throttle中间件如何限制每个用户的访问频率

查找了一些资料,目前只了解到throttle的用法是限制某个接口在一段时间内的访问频率限制,比如说一个接口设置了1分钟内只允许访问1次,那么这一分钟内只有一个用户可以访问得到,其他用户访问不到。但是我现在想针对每个用户进行限制,比如说设置1分钟内每个用户只允许访问一次,这样应该如何设置呢?
已邀请:

sueysok

赞同来自:

/**
 * Resolve request signature.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return string
 * @throws \RuntimeException
 */
protected function resolveRequestSignature($request)
{
    if ($user = $request->user()) {
        return sha1($user->getAuthIdentifier());
    }

    if ($route = $request->route()) {
        return sha1($route->getDomain().'|'.$request->ip());
    }

    throw new RuntimeException(
        'Unable to generate the request signature. Route unavailable.'
    );
}

\Illuminate\Routing\Middleware\ThrottleRequests这个类里80多行,看样子是先检查是否关联了用户,没有就用ip
这个功能我没用过,不过感觉不难

要回复问题请先登录注册