【发布时间】:2019-11-14 16:08:51
【问题描述】:
我正在使用 vue.js 和 axios 在 laravel 中进行 CRUD。我确实创建了完整的 CRUD,但是使用从控制器返回数据的路由,但是如果我放置返回数据的路由,显然所有人都可以访问返回控制器的数据。
我正在使用 laravel 5.5、vue.js 和 axios。如果我将路由放在浏览器中,例如:localhost/tasks 显示我在控制器中传递的所有数据。
路线:
Route::get('/', function () {
return view('dashboard');
});
Route::resource('tasks', 'TaskController',['except' => 'show', 'create', 'edit']);
控制器:
public function index()
{
$tasks = Task::orderBy('id', 'DESC')->get();
return $tasks;
}
app.js
data: {
keeps: [],
newKeep: '',
fillKeep: {'id': '', 'keep': ''},
errors: []
},
methods: {
getKeeps: function()
{
//este es el nombre de las rutas (index)
var urlKeeps = 'tasks';
axios.get(urlKeeps).then(response =>{
this.keeps = response.data
});
},
// Metodo de editar
editKeep: function(keep){
this.fillKeep.id = keep.id;
this.fillKeep.keep = keep.keep;
$('#edit').modal('show');
},
主要仪表板在'/'路由中,控制器从我的控制器返回数据,路由是“/tasks”和其他方法,但是当任何其他用户在浏览器中输入“www.myweb.com /tasks”它从我的控制器返回所有数据,¿我怎样才能避免这个问题?
【问题讨论】:
-
首先我明白了你的想法,但我有一个简单的问题,即你希望数据何时显示?我的意思是您希望用户登录以便他可以访问您的数据,或者您还有其他想法吗?
-
嗨@RYOKSecurity 我不希望在我们访问路径'/任务'时显示数据,因为它会抛出我在控制器中经历的所有内容,我不知道是否放置中间件可以限制对这些路由的访问,从而阻止其他人访问路由抛出的内容。
标签: mysql laravel vue.js axios