正在收到消息:“未经身份验证的” laravel护照仅在实时服务器上

时间:2018-10-24 19:13:32

标签: php authentication laravel-5.2 postman laravel-passport

我今天在服务器上上传了我的网站,但是我有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>

谁能告诉我这是什么问题?

0 个答案:

没有答案