【发布时间】:2018-05-24 07:43:53
【问题描述】:
当我在本地调用此 API 时,它工作正常并返回值。但是当我在服务器上部署后调用这些 API 时,总是需要返回令牌密钥。我也从数据库中输入了准确的令牌密钥。
这是我对每个用户的令牌功能。
private function randomDigit($length, $count)
{
$codes = [];
$stringDigits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
while (count($codes) < $count) {
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString = (string)$randomString . substr($stringDigits, rand(0, strlen($stringDigits) - 1), 1);
}
if (!in_array($randomString, $codes)) {
$codes[] = (string)$randomString;
}
}
return $codes;
}
这就是我的路线的样子。
Route::group(['middleware' => 'token'], function (){
Route::get('/api/users', 'UserController@apiUsers')->name('api.users');
Route::get('/api/user/{id}/show', 'UserController@apiUserShow')->name('api.user.show');
Route::delete('/api/logout', 'UserController@apiLogout')->name('api.logout');
Route::post('/api/user/{id}/state', 'UserController@apiState')->name('api.state');
Route::get('/api/user/{id}/getstate', 'UserController@apiGetState')->name('api.getState');
Route::get('/api/fetch', 'UserController@apiFetch')->name('api.fetch');
Route::get('/api/init', 'UserController@apiInit')->name('api.init');
Route::post('/api/user/{id}/present', 'UserController@apiPresent')->name('api.present');
Route::get('/api/user/{id}/retrieve', 'UserController@apiRetrieve');
Route::get('/api/user/{id}/getattand', 'UserController@apiGetAttend')->name('api.getAttand');
});
【问题讨论】:
-
请尝试添加相关代码并改进问题的风格。
-
尝试在隐身浏览器上再次测试您的本地 api。你在哪里注册的那条路线?在
web.php或api.php? -
我在 web.php 中注册了我的所有路由。我也在邮递员和浏览器中测试了我所有的 api。它在本地工作
-
@dexterb,不需要令牌的 API 就像登录 API 一样工作。但是其他需要令牌的 API 不工作。
-
@dexterb .. 这是我的路线和生成令牌密钥的函数。