laravel - Laravel V4.1.0:401 代码“消息”:“未验证”。用于 API
问题描述
我在不使用php artisan serve
我用于Passport
身份验证时调用 Laravel API 时遇到问题
当我使用它php artisan serve
并使用它登录时,http://127.0.0.1:8000/api/login
它工作正常,当我使用它获取令牌并获取数据时,http://127.0.0.1:8000/api/getData
它也工作正常。
但是,我想让它在没有 php artisan serve
. 当我尝试这样做时:
login usinghttp://127.0.0.1/Laravel/MyApp/public/index.php/api/login
工作正常,当我获取令牌并使用http://127.0.0.1/Laravel/MyApp/public/index.php/api/getData
它获取数据时401 code - unauthorized
。
我正在使用AppServ : Apache
.
我搜索了 SOF 并尝试了所有建议的解决方案,但没有成功。
api.php
Route::post('/login','App\Http\Controllers\ApiAuthController@login')->name('login');
Route::post('register', 'App\Http\Controllers\ApiAuthController@register');
Route::group(['middleware'=>'auth:api','namespace'=>'App\Http\Controllers'], function () {
Route::post('getData', 'DataController@index');
});
用户:
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
..........
}
内核.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
古拉兹:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
我的.htaccess
内部公共目录:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我试图将公共目录数据复制到根文件夹并编辑.htaccess
. 我也尝试.htaccess
在根文件夹中创建新的,.htaccess
在公共文件夹中删除和不删除,也没有运气。
谢谢
解决方案
推荐阅读
- r - ggplot2:控制填充选项的顺序
- python - Python 如何区别对待 sys.path.insert(path) 和 import package_path.module
- php - 如何清除 WP 主题小部件的侧边栏 ID 错误
- python - 数据排序和删除重复项
- c++ - 返回 *this 会给出 Weffc++ 警告
- go - 创建动态函数
- pg-promise - pg-promise:支持多态类型
- coq - Coq 中的笛卡尔积建模集
- dart - 使用哪些小部件来显示从 firestore 到文本编辑的实时数据以及更新的任何更改
- python - New annotations break inspection of dataclasses