Получение сообщения: «Неаутентифицированный» паспорт laravel только на живом сервере - PullRequest
0 голосов
/ 24 октября 2018

Сегодня я загрузил свой веб-сайт на сервер, но у меня проблема с паспортом Laravel для аутентификации API.На локальном хосте я могу успешно зарегистрироваться, войти в систему и получить токен, затем получить данные пользователя, но на сервере я получаю сообщение: «Неаутентифицировано»

Это мой контроллер:

<?php

namespace App\API\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Support\Facades\Auth;
use Validator;

class UsersApiController extends Controller
{
public $successStatus = 200;

public function login(){
    if(Auth::attempt(['phone' => request('phone'), 'password' => request('password')])){
        $user = Auth::user();
        $success['token'] =  $user->createToken('MyApp')-> accessToken;
        $user->api_token = $success['token'];
        $user->update();
        return response()->json(['success' => $success], $this-> successStatus);
    }
    else{
        return response()->json(['error'=>'Unauthorised'], 401);
    }
}

public function register(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required',
        'phone' => 'required|numeric|unique:users',
        'password' => 'required',
        'c_password' => 'required|same:password',
    ]);
    if ($validator->fails()) {
        return response()->json(['error'=>$validator->errors()], 401);
    }
    $input = $request->all();
    $input['password'] = bcrypt($input['password']);
    $user = User::create($input);
    $success['token'] =  $user->createToken('MyApp')-> accessToken;
    $user->api_token = $success['token'];
    $user->update();
    $success['name'] =  $user->name;
    return response()->json(['success'=>$success], $this-> successStatus);
}

public function details()
{
    $user = Auth::user();
    return response()->json(['success' => $user], $this-> successStatus);
}

}

И маршрут API:

Route::post('login', 'UsersApiController@login');
Route::post('register', 'UsersApiController@register');
Route::group(['middleware' => 'auth:api'], function(){

Route::post('details', 'UsersApiController@details');

});

AuthServiceProvider:

<?php

namespace App\Providers;

use Carbon\Carbon;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as 
ServiceProvider;
use Laravel\Passport\Passport;

class AuthServiceProvider extends ServiceProvider
{
 /**
 * The policy mappings for the application.
 *
 * @var array
 */
protected $policies = [
    'App\Model' => 'App\Policies\ModelPolicy',
];

/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();
    Passport::routes();
    Passport::withCookieSerialization();
    Passport::tokensExpireIn(Carbon::now()->addDays(15));
}

}

И я добавил это в модель пользователя:

use HasApiTokens, Notifiable;

.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]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

Может кто-нибудь сказать мне, в чем проблема?

...