【发布时间】:2021-04-11 10:45:27
【问题描述】:
我有一个与 Rails 6 API 通信的 Vue 应用程序。我注意到在我的一些端点中有一些奇怪的行为,Rails 接收到一些看似从未真正从前端发送的参数,就好像 Rails 只是自己注入它们一样。这不是一个大问题,因为这些参数最终都会被拒绝,并且允许的参数工作正常,但我很好奇到底发生了什么。
例如,我在前端的登录方法将使用包含username 和password 的JSON 调用/authenticate 端点。正如您在下面的屏幕截图中所见,这是发送到 Rails 的整个请求负载。
但在 Rails 日志中,每次发出此请求时,我都会看到一个额外的未经许可的参数以 user => { username: "dummy" } 的形式出现。
我的authenticate控制器方法很简单
def authenticate
@user = User.find_by(username: user_params[:username])
if @user&.authenticate(params[:password])
token = JsonWebToken.encode(user_id: @user.id)
render json: { token: token, user: @user }, status: :ok
else
render json: { error: 'Invalid username or password, please try again' }, status: :unauthorized
end
end
def user_params
params.permit(:username, :password, :email)
end
这里到底发生了什么?
【问题讨论】:
标签: ruby-on-rails ruby