Запрос, отправленный вами на шаге 1, не работает, потому что это не то, как должен работать поток oauth. Поток, который вы реализуете, представляет собой трехэтапный процесс, который пользователь завершает в браузере или приложении, чтобы войти в ваше приложение и запросить, чтобы приложение или сайт, с которого они пришли, имели доступ к вашему API от своего имени. Делая ваш запрос с помощью почтового запроса почтальона, вы не можете получить доступ к потоку входа в систему, поэтому он пытается вернуть ключ для уже аутентифицированного пользователя (которого нет), поэтому $user->getKey()
не работает, потому что $user
равно нулю,
Для второй ошибки
/ oauth / authorize не принимает этот тип предоставления, потому что он не возвращает предоставления. Существует 3 шага для входа в систему oauth
Стороннее приложение перенаправляет пользователя на ваш сервер для входа в систему, передавая URL обратного вызова для перенаправления обратно на
Пользователь входит в систему, и ваше приложение перенаправляет их обратно на сторонний сайт, передавая код авторизации, который стороннее приложение использует для запроса токена доступа.
Третийприложение party использует код авторизации, полученный в 2, чтобы запросить /oauth/authorize
и запросить токен доступа, который затем можно использовать для доступа к вашему API от имени пользователя.
Таким образом, причина, по которой ваш звонок почтальона на /oauth/authorize
не работает с неподдерживаемым типом, заключается в том, что вы пытаетесь выполнить шаг 3 в URL-адресе к шагу 2. Вам необходимо получить авторизацию. код в шаге 2, а затем сделайте запрос к /oauth/token
, чтобы получить токен доступа.
Если вы пытаетесь предоставить аутентификацию пользователя сторонним приложениям, вам нужно реализовать этот поток через браузер, чтобы у пользователя была возможность войти через ваш сервер. В этом случае 'redirect_uri' в вашем фрагменте кода должен быть чем-то, что вы принимаете из запроса, а не жестко закодированным, так как этот URL-адрес - то, куда пользователь будет перенаправлен обратно после аутентификации в вашем приложении. Получив код авторизации, вы можете сделать REST-вызов за кулисами, чтобы получить настоящий токен доступа.
Если вы пытаетесь выполнить аутентификацию исключительно по вызовам REST / API, вам придется использовать другой тип предоставления, скорее всего предоставления учетных данных клиента