Авторизация на php и регистрация: Регистрация и Авторизация на PHP + MySQL

laravel-auth/register.blade.php на мастере · jeremykenedy/laravel-auth · GitHub

@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 (в обмен на токен доступа).