Авторизация на php и регистрация: Регистрация и Авторизация на PHP + MySQL
@extends(‘layouts.app’) | |
@section(‘контент’) | |
<дел> | |
<дел> | |
<дел> | |
<дел> | |
{{ __(‘Регистрация’) }} | |
<дел> | |
@csrf | |
<дел> | |
<дел> | |
@if ($errors->has(‘имя’)) | |
<диапазон> | |
{{ $errors->first(‘name’) }} | |
@endif | |
<дел> | |
<дел> | |
@if ($errors->has(‘first_name’)) | |
<диапазон> | |
{{ $errors->first(‘first_name’) }} | |
@endif | |
<дел> | |
<дел> | |
@if ($errors->has(‘last_name’)) | |
<диапазон> | |
{{ $errors->first(‘last_name’) }} | |
@endif | |
<дел> | |
<дел> | |
@if ($errors->has(’email’)) | |
<диапазон> | |
{{ $errors->first(’email’) }} | |
@endif | |
<дел> | |
<дел> | |
@if ($errors->has(‘пароль’)) | |
<диапазон> | |
{{ $errors->first(‘пароль’) }} | |
@endif | |
<дел> | |
<дел> | |
@if(config(‘settings. reCaptchStatus’)) | |
<дел> | |
<дел> | |
@endif | |
<дел> | |
<дел> | |
<тип кнопки = "отправить"> | |
{{ __(‘Регистрация’) }} | |
<дел> | |
<дел> | |
<р> | |
Или используйте социальные сети для регистрации | |
@include(‘partials. socials’) | |
@endsection | |
@section(‘footer_scripts’) | |
@if(config(‘settings. reCaptchStatus’)) | |
@endif | |
@endsection |
Войти через SPA и получить информацию с Php
isimental
1
У меня есть сайт Php, и я использую пример SPA с универсальным входом. Все работает нормально. Я могу войти в систему с помощью электронной почты и пароля или с помощью любой настроенной социальной сети
Когда пользователь входит в систему, я получаю код и состояние через GET. Мой вопрос таков:
Как я могу использовать этот код/состояние в Php, чтобы получить информацию о пользователе, информацию об обновлениях или что-то еще?
Я могу сделать это с частью javascript, но я хочу этого с Php
В настоящее время, когда я получил код/состояние, я использую этот код GitHub — RiskioFr/oauth3-auth0: провайдер аутентификации 0 для клиента OAuth 2. 0, но он не работает с invalid_grant [error_description] => Неверный код авторизации
Я используя этот код, потому что сервер не соответствует требованиям официального кода Php
Я прочитал Auth0 PHP API Quickstart, а также GitHub — auth0/auth0-spa-js: аутентификация Auth0 для одностраничных приложений (SPA) с PKCE, но могу не получить этот токен, просто код/состояние
Обновление:
После шага 2 в разделе Вызов API с использованием потока кода авторизации (auth0.com) я получил сообщение об ошибке: требуется code_verifier
То же самое после этого кода Обозреватель API аутентификации (auth0.com)
Внешний вид как будто это как-то связано с потоком кода авторизации с ключом подтверждения для обмена кодом (PKCE) (auth0.com), но не знаю, как это удалить и заставить его работать
dan.woda
3
Привет @isimental,
Добро пожаловать в сообщество Auth0!
Код аутентификации не предназначен для совместного использования между вашим интерфейсом и сервером. Это цель токена доступа. Есть ли причина, по которой вы не используете AT?
изименталь
4
Спасибо за ответ
После моего последнего обновления я много чего ищу и тестирую. Как я уже сказал, я не могу использовать SDK, потому что сервер не соответствует требованиям, поэтому я думал об использовании API напрямую
Ссылка для входа изменена на https://{DOMAIN}/authorize, а затем я отправляю полученный код на https://{DOMAIN}/oauth/token, и теперь я получил access_token
У меня проблемы с композитором, SDK , типы грантов, PKCE, верификатор кода, аудитория, API управления, машина-машина, нативная сеть или PSA и прочее, чего я уже не помню. Не знаю, почему так много вариантов/способов
Следующий шаг — получить информацию о пользователе… кажется, что grant_type должен быть client_credentials вместо авторизации_кода, но затем я получил ошибку с аудиторией. Попробую через несколько часов
Надеюсь, есть пример/документ, который напрямую использует API. Я работаю с Php и Curl
Кстати, есть ли способ объединить пользователей? В настоящее время Auth0 создает другого пользователя при входе в разные социальные сети, но адрес электронной почты на самом деле один и тот же
Еще один… Twitter предоставляет адрес электронной почты — GET account/verify_credentials | Документы | Платформа разработчиков Twitter
dan.woda
5
Давайте сделаем шаг назад.
Вы строите СПА? Как правило, приложение PHP больше похоже на обычное веб-приложение .
Почему нельзя использовать SDK? Большинство вещей, с которыми вы здесь боретесь, — это , а не концепции Auth0 , а скорее части протокола OAuth3. 0/OIDC, который Auth0 не создавал.
Одним из преимуществ Auth0 является то, что вам не нужно разбираться в протоколах для их реализации. : Не используя SDK, вы в основном сводите на нет это преимущество.
Также обратите внимание на привязку учетных записей пользователей.
изименталь
6
Да, это обычное веб-приложение, но когда я искал примеры, все они указывали на Php SDK, поэтому я попробовал SPA и затем работает, первый шаг
Невозможно использовать SDK, потому что сервер немного устарел и имеет много проектов, поэтому не может обновить Php до версии 8
Я не возражаю против использования Rest/API, я использовал Facebook, Messenger. Whatsapp, Slack, Twitter, Paypal, Apple, Amazon, даже Oauth напрямую несколько лет назад и многие другие. Это один из первых случаев, когда у меня возникают, скажем так, проблемы с некоторыми технологиями
На самом деле, я могу самостоятельно входить/входить в систему через социальные сети, но мой босс говорит, что я должен использовать Auth0, главным образом, чтобы не тратить время на обновление код каждый раз, когда социальная сеть что-то меняет. Конечно, мы планируем оплатить один из планов
Извините, если это звучит грубо, я не могу правильно выразиться, потому что английский не является моим родным языком
Я просто ищу помощи, не хочу, чтобы кто-то делал работу за меня. Просто руководство о том, где и что искать
- Хотите войти/зарегистрироваться — я могу сделать это с помощью /autorize
- Я могу получить access_token с помощью /oauth/token
- Необходимо получить имя, адрес электронной почты, тип входа (аутентификация, социальный)
- Позже будет рассмотрено, как обновить токен и прочее
Я думаю об этом: если я могу войти/зарегистрировать пользователя и получить код/состояние, почему я не могу просто вызвать какой-нибудь Auth0 API для получения информации? Зачем мне иметь дело с Oauth?
Спасибо за любую помощь
dan.woda
7
Изименталь:
Да, это обычное веб-приложение, но когда я искал примеры, все они указывали на Php SDK, поэтому я попробовал SPA, и он работает, первый шаг
Если вы не используете клиентское приложение, я бы предложил использовать этот поток: поток кода авторизации.
Изименталь:
Невозможно использовать SDK, так как сервер немного устарел и на нем много проектов, поэтому невозможно обновить Php до версии 8
Ладно, это логично.
Изименталь:
Извините, если я звучу грубо, я не могу правильно выражаться, потому что английский не является моим родным языком
Не волнуйтесь, это не звучит грубо
Изименталь:
Необходимо получить имя, адрес электронной почты, тип входа (аутентификация, социальная сеть)
Эта информация доступна в токене идентификатора или через конечную точку /userinfo (в обмен на токен доступа).