Laravel 5.5アプリケーション(Passportを使用していません)があり、在庫インフラストラクチャを使用して構築したVueJSコンポーネントから/api
ルートにアクセスしようとしています。使用するvue-resource有効な認証済みの応答を取得できません。Laravel基本認証:api 401 Unauthorized
マイVueJS:routes/api.php
で
methods: {
updateSubscription(newChannelId, oldChannelId) {
if (oldChannelId < 1 && newChannelId > 0) {
console.log('new subscription', this);
this.$http.post('/api/subscribe', {
'game_id': this.gameId,
'channel_id': newChannelId
}).then(response => {
// success
}, response => {
console.error('Failed to subscribe');
});
マイLaravelルート:
Route::middleware('auth:api')->group(function() {
Route::post('subscribe', '[email protected]');
Route::post('unsubscribe', '[email protected]');
Route::post('update-subscription', '[email protected]');
});
を私はLaravelは外のXSRFを扱っ思った私は、XSRFトークンここに渡されて見ることができますゲートと私はこの問題に遭遇しないだろう。私は何を逃した
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];
:私は私のhttpカーネルがどのように見えることを考えるとauth:api
に精通し、100%じゃないと仮定しますか?
これは意味がありますが、Laravelの船はAPIを認証する能力を持っているのですか、これを管理するために「Passport」を引き出す必要がありますか? – Webnet
好きな場合は、単にあなたのテーブルに 'api_token'フィールドを追加することができます。これは、比較のためにプレーンテキストとして保存する必要があります。したがって、最も安全ではありませんが、すぐに作業することができます。 – fubar
この場合、それは単なるAjaxリクエストです。私は 'auth:api'トークンを削除して、この要求をするためにユーザにログインさせるだけでよいはずです。とにかくソースコードを見ることで見えるとき、JSにトークンを置くことには意味がありません。 – Webnet