laravel 5.6 паспорт. Почтальон загрузка не производится - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь создать конечную точку аутентификации, в которой ключ пользователя возвращается, когда они аутентифицируются с использованием Laravel 5.6.

При тестировании на Postman с использованием localhost:8000 я обнаружил, что он принимает запрос, но не может ничего вывести. пожалуйста, нажмите здесь, чтобы увидеть изображение .

Посмотрите на AuthController ниже:

    <?php

    namespace App\Http\Controllers\Api;

    use App\User;
    use Illuminate\Http\Request;
    use App\Http\Controllers\Controller;
    use GuzzleHttp\Exception\GuzzleException;
    use GuzzleHttp\Client;
    use Hash;

    class AuthController extends Controller
    {
    public function register(Request $request)
    {

        $request->validate([
            'email' => 'required',
            'name' => 'required',
            'password' => 'required'
        ]);

        $user = User::firstOrNew(['email' => $request->email]);

        $user->name = $request->name;
        $user->email = $request->email;
        $user->password = bcrypt($request->password);
        $user->save();

        $http = new Client;

        $response = $http->post(url('oauth/token'), [
            'form_params' => [
                'grant_type' => 'password',
                'client_id' => '2',
                'client_secret' =>'5G7yDJFNDsqzVNSJU85ff8DWW6EiKFLGXDDmMmt9',
                'username' => $request->email,
                'password' => $request->password,
                'scope' => '',
            ],
        ]);

    return response(['data'=>json_decode((string)$response->getBody(),true)]);

    }
    public function login(Request $request)
    {

        $request->validate([
            'email' => 'required',
            'password' => 'required'
        ]);
        $user = User::where('email', $request->email)->first();
        if (!$user) {
       return response(['status' => 'error', 'message' => 'user not found']);
        }
        if (Hash::check($request->password, $user->password)) {

            $http = new Client;

            $response = $http->post(url('oauth/token'), [
                'form_params' => [
                    'grant_type' => 'password',
                    'client_id' => '2',
              'client_secret' => 'JhzSRlU6dnJxI1vb8MpWWksjaOo3AdyuL3Mm6ANf',
                    'username' => $request->email,
                    'password' => $request->password,
                    'scope' => '',
                ],
            ]);

        }
    }
    }

это код модели пользователя

    <?php

namespace App;

use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

это код API

    <?php

use Illuminate\Http\Request;


Route::post('/register', 'Api\AuthController@register');
Route::post('/login', 'Api\AuthController@login');

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

1 Ответ

0 голосов
/ 08 февраля 2019

Во-первых, вы можете изменить свой запрос почтальона следующим образом:

  1. добавить заголовки следующим образом. image1
  2. добавитьТело в виде данных формы image2

Самое важное - убедиться, что ваш порт корректен и работает на сервере laravel.Порт по умолчанию - порт 8000. Тогда ваш URL должен быть сформирован как

http://localhost:8000/api/register (обратите внимание, что этот URL является только примером формата)

Попробуйте сделатьвыше изменений и дайте нам то, что у вас есть.Думаю, это может помочь.

Спасибо

...