Recherche authentification TOKEN

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recherche authentification TOKEN

Re: Recherche authentification TOKEN

par moogli » 26 avr. 2017, 14:16

donc
1/ tu as un problème de configuration à la base qui fait que composer ne peux pas résoudre les dépendances : je te conseil de vérifier la version de ce dont tu as besoin
ton package est abandonné (1.1.2 est la dernière version, elle date de 2012), peux être voir pour autre chose ?
tu peux tenter de mettre la version 1.1.2
https://packagist.org/packages/illuminate/foundation
le dépôt github indiqué n'existe pas (ou plus)
Peux être devrais tu simplement utiliser laravel complètement ?
2/ l'article que tu cites indique comment utiliser composer pour utilise la librairie oauth, notament en fournissant le fichier composer.json utilisé.
d’ailleurs tout le code du projet de l'article est disponible https://github.com/phpmasterdotcom/Crea ... AuthServer

3/ il ne faut pas faire de copier / collé sans essayer de comprendre ce que l'on fait. c'est ton problème depuis le début !
est ce que tu as vraiment besoin de tout cela ?
est ce qu'un solution plus simple ne pourrait pas être envisagé ?
Ne peux tu pas prendre quelques heure pour tester et comprendre le code de l'article afin de pouvoir faire la même chose dans ton code (et non essayer de faire rentrer au chausse-pied du code qui ne va pas avec le reste ;) ).


@+

Re: Recherche authentification TOKEN

par azizss » 26 avr. 2017, 12:50

Merci encore,

je pense que c'est ton autoload qui foire, as tu compris ce que fait composer pour cela ?
composer et un gestionnaire de dependance PHP.
Si j'utilise une bibliothèques PHP, il me récupère tous ce qui va avec la bibliothèque.


et comment ça se configure ?
On tape cela sous le terminal SSH connexion serveur :

curl -s https://getcomposer.org/installer | php

On créer le fichier composer.json et écris :

composer.json

Code : Tout sélectionner

{ "require": { "illuminate/foundation": "1.0.*" }, "minimum-stability": "dev" }
et on tape dans terminal :
php composer.phar install

Mais suite a des erreurs

Code : Tout sélectionner

Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for illuminate/foundation 1.0.* -> satisfiable by illuminate/foundation[v1.0.0]. - illuminate/foundation v1.0.0 requires illuminate/blade >=1.0.0 -> no matching package found. Potential causes: - A typo in the package name - The package is not available in a stable-enough version according to your minimum-stability setting see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details. Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
j'ai utiliser cette config :

Code : Tout sélectionner

{ "autoload": { "psr-4": {"Acme\\": "src/"} } }
et ça install les répertoire et fichier

as tu un répertoire src ?
NON PAS DE SRC


Voilà,

Re: Recherche authentification TOKEN

par moogli » 26 avr. 2017, 10:58

salut,

je pense que c'est ton autoload qui foire, as tu compris ce que fait composer pour cela ? et comment ça se configure ?
as tu un répertoire src ?

pur composer il y a des chose sur le net
https://openclassrooms.com/courses/deve ... a-composer
http://www.umanit.fr/En-ce-moment/UmaNo ... r#eztoc1_4
https://www.grafikart.fr/tutoriels/php/composer-480
etc :)

@+

Re: Recherche authentification TOKEN

par azizss » 26 avr. 2017, 09:55

Bonjour,
Quelqu'un peux m'aider,

Merci a vous,

Re: Recherche authentification TOKEN

par azizs » 25 avr. 2017, 14:36

Bonjour tous le monde,

Je vient vers vous pour une aide.
Je galère énormément sur le mise en place de ce tuto
Que moogli ma donnée merci lui,

https://www.sitepoint.com/creating-a-php-oauth-server/

j'ai suivie tous la procédure en vin, il y a des choses que je comprend pas.

Voilà les étapes que j'ai fait :
1er télécharger cela :

https://code.google.com/archive/p/oauth-php/
Décompresser et installer sur mon serveur :
oauth-php-175.tar.gz
Ce qui me donne des répertoires et fichiers de ce type :
- test
- library
- exemple

2ème creer la BDD :

Code : Tout sélectionner

CREATE TABLE users ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL DEFAULT '', password VARCHAR(255) NOT NULL DEFAULT '', email VARCHAR(255) NOT NULL DEFAULT '', created DATE NOT NULL DEFAULT '0000-00-00', PRIMARY KEY (id) );
Installer Composer avec les commande suivante

curl -s https://getcomposer.org/installer | php

Créer le fichier composer.json, avec le contenue suivant :

Code : Tout sélectionner

{ "autoload": { "psr-4": {"Acme\\": "src/"} } }
Puis on taper la commande suivant :
php composer.phar install

Ca ma créer les repertoires suivant avec ces sous fichiers :
- vendors/autoload.php
- composer/autres fichiers

Puis j'ai créer un répertoire et un fichier :
include/common.php
dans le contenue :

Code : Tout sélectionner

<?php require_once '../vendor/autoload.php'; session_start(); // Add a header indicating this is an OAuth server header('X-XRDS-Location: http://' . $_SERVER['SERVER_NAME'] . '/services.xrds.php'); // Connect to database //$db = new PDO('mysql:host=localhost;dbname=oauth', 'dbuser', 'dbpassword'); $db = new PDO('mysql:host=adresse du serveur;dbname=nom de la BDD', 'Login', 'Mot de passe'); // Create a new instance of OAuthStore and OAuthServer $store = OAuthStore::instance('PDO', array('conn' => $db)); $server = new OAuthServer();
Puis est créer formulaire_inscription.php contenue :

Code : Tout sélectionner

<form method="post" action="register.php"> <fieldset> <legend>Register</legend> <div> <label for="requester_name">Name</label> <input type="text" id="requester_name" name="requester_name"> </div> <div> <label for="requester_email">Email</label> <input type="text" id="requester_email" name="requester_email"> </div> <div> <label for="application_uri">URI</label> <input type="text" id="application_uri" name="application_uri"> </div> <div> <label for="callback_uri">Callback URI</label> <input type="text" id="callback_uri" name="callback_uri"> </div> </fieldset> <input type="submit" value="Register"> </form>
Puis créer register.php dans le contenue :

Code : Tout sélectionner

<?php $stmt = $db->prepare('INSERT INTO users (name, email, created) ' . 'VALUES (:name, :email, NOW())'); $stmt->execute(array( 'name' => $_POST['requester_name'], 'email' => $_POST['requester_email'] )); $id = $db->lastInsertId(); $key = $store->updateConsumer($_POST, $id, true); $c = $store->getConsumer($key, $id); ?> <p><strong>Save these values!</strong></p> <p>Consumer key: <strong><?=$c['consumer_key']; ?></strong></p> <p>Consumer secret: <strong><?=$c['consumer_secret']; ?></strong></p>
Générer un jeton de demande
Puis aussi le fichier request_token.php contenue :

Code : Tout sélectionner

<?php require_once 'include/oauth.php'; $server->requestToken();
Échange du jeton de demande pour un jeton d'accès
et aussi login.php contenue

Code : Tout sélectionner

<?php // check if the login information is valid and get the user's ID $sql = 'SELECT id FROM users WHERE email = :email'; $stmt = $db->prepare($sql); $result = $stmt->exec(array( 'email' => $_POST['requester_email'] )); $row = $result->fetch(PDO::FETCH_ASSOC); if (!$row) { // incorrect login } $id = $row['id']; $result->closeCursor(); // Check if there is a valid request token in the current request. // This returns an array with the consumer key, consumer secret, // token, token secret, and token type. $rs = $server->authorizeVerify(); // See if the user clicked the 'allow' submit button (or whatever // you choose) $authorized = array_key_exists('allow', $_POST); // Set the request token to be authorized or not authorized // When there was a oauth_callback then this will redirect to // the consumer $server->authorizeFinish($authorized, $id);
ainsi que access_token.php contenue :

Code : Tout sélectionner

<?php require_once 'include/oauth.php'; $server->accessToken();
Validation d'une demande
J’ai créer le fichier home.php contenue:

Code : Tout sélectionner

<?php require_once 'includes/oauth.php'; if (OAuthRequestVerifier::requestIsSigned()) { try { $req = new OAuthRequestVerifier(); $id = $req->verify(); // If we have a user ID, then login as that user (for // this request) if ($id) { echo 'Hello ' . $id; } } catch (OAuthException $e) { // The request was signed, but failed verification header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: OAuth realm=""'); header('Content-Type: text/plain; charset=utf8'); echo $e->getMessage(); exit(); } }
Test du serveur OAuth

Et je créer le fichier test_request.php contenue :

Code : Tout sélectionner

<?php define('OAUTH_HOST', 'http://' . $_SERVER['SERVER_NAME']); $id = 1; // Init the OAuthStore $options = array( 'consumer_key' => '<MYCONSUMERKEY>', 'consumer_secret' => '<MYCONSUMERSECRET>', 'server_uri' => OAUTH_HOST, 'request_token_uri' => OAUTH_HOST . '/request_token.php', 'authorize_uri' => OAUTH_HOST . '/login.php', 'access_token_uri' => OAUTH_HOST . '/access_token.php' ); OAuthStore::instance('Session', $options); if (empty($_GET['oauth_token'])) { // get a request token $tokenResultParams = OauthRequester::requestRequestToken($options['consumer_key'], $id); header('Location: ' . $options['authorize_uri'] . '?oauth_token=' . $tokenResultParams['token'] . '&oauth_callback=' . urlencode('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'])); } else { // get an access token $oauthToken = $_GET['oauth_token']; $tokenResultParams = $_GET; OAuthRequester::requestAccessToken($options['consumer_key'], $tokenResultParams['oauth_token'], $id, 'POST', $_GET); $request = new OAuthRequester(OAUTH_HOST . '/test_request.php', 'GET', $tokenResultParams); $result = $request->doRequest(0); if ($result['code'] == 200) { var_dump($result['body']); } else { echo 'Error'; } }

J’ai cette erreur :

Warning: require_once(includes/oauth.php): failed to open stream: No such file or directory in /lien_serveur/test/index.php on line 3

Fatal error: require_once(): Failed opening required 'includes/oauth.php' (include_path='.:/etc/phpnet-php/php71-x86_64/lib/php') in /lien_serveur//test/index.php on line 3

Je pense qu’il manque le fichier oauth.php dans includes

Merci de votre aide,

Re: Recherche authentification TOKEN

par moogli » 20 avr. 2017, 11:13

salut,

il y a des exemples sur la toile
par exemple
http://bshaffer.github.io/oauth2-server ... -concepts/
https://www.sitepoint.com/creating-a-php-oauth-server/


pour JWT, qui n'est pas exactement la même chose, je t'ai fournit des liens plus haut.
Choisit l'un ou l'autre et applique le a ton code.
tu as tous ce qu'il te faut (par rapport à ta demande initiale) avec JWT. tu as même des librairies qui te mâche le boulot dans les trois environnements que tu souhaites utiliser.
il reste à gérer l'authentification coté php, c'est relativement simple il s'agit d'une gestion de formulaire basique.

si tu ne comprends pas quelque chose il est possible que l'on puisse t'expliquer.

@+

Re: Recherche authentification TOKEN

par azizss » 20 avr. 2017, 09:57

Merci pour ton aide,

C'est pas trop ce que je cherche je voudrais utiliser OAuth2 server php et JWT.

J'ai commencer mais je vais faire u tutorial pour expliquer comment m'être cela en place pour une authentification login/password.

Voilà mon prochain poste

Re: Recherche authentification TOKEN

par @rthur » 19 avr. 2017, 10:25

Pourquoi ne pas utiliser les sessions ?
Ce que tu appelles un "token" serait en fait l'ID de session qui est unique et généré automatiquement par le serveur, et transmis soit par cookie soit dans l'url.
Et l'énorme avantage c'est que tout est géré par PHP de façon quasi transparente donc tu n'as pas besoin de gérer manuellement toute la mécanique de génération et transmission...

Voici un tuto :
http://www.apprendre-php.com/tutoriels/ ... sions.html

Re: Recherche authentification TOKEN

par azizs » 19 avr. 2017, 09:32

" C’est quoi pour toi une identification avec token ?"

C'est une série de chiffre générer aléatoirement via un couple, qui permet de valider chaque action d'un client connecter puis a un temps défini celui là et détruit puis régénère un autre. Et quant le personne n'est plus connecter celui-ci est détruit.
Et aussi cela permet d'authentifier chaque requête avec cette série de chiffre avec vérification dans la BDD.

l'exemple que je veux reproduire et le même que PHPMYADMIN :

https://sql.site.net/index.php?client=2 ... fc64ddbdc8

C'est ce que je veux faire pour chaque client qui ce connecte a mon site, et qui demande une action quelconque.

Merci de ton aide,

Re: Recherche authentification TOKEN

par @rthur » 19 avr. 2017, 09:20

Voilà ce que cela donne :
["redirect"]=> string(140) "
Notice: Undefined index: redirect in /home/www/site.com/index.php on line 27
" }
Ta variable redirect est donc non renseignée, voici pourquoi tu as ce message d'erreur
Je vient vers vous pour m'aider. Je cherche à faire une authentification avec token
C’est quoi pour toi une identification avec token ?

Re: Recherche authentification TOKEN

par azizss » 19 avr. 2017, 08:58

Bonjour,

Je vient vers vous pour m'aider. Je cherche à faire une authentification avec token, l'exemple que j'ai trouver ne fonctionne pas et trouve pas le problème,.

Quelqu'un aurai un tuto bien fait, il y a des milliers de site qui explique le principe, mais les tuto son peux et ne veux pas utilisé Google ou Facebook pour générer un token. Je cherche que mon serveur le génère lui même.

Merci de votre aide,

Re: Recherche authentification TOKEN

par azizss » 18 avr. 2017, 23:52

Voilà ce que cela donne :
Warning: Header may not contain more than a single header, new line detected in /home/www/swittelecom.com/projet/theme/serv2/index.php on line 10
array(3) { ["userid"]=> string(4) "test" ["password"]=> string(4) "test" ["redirect"]=> string(140) "
Notice: Undefined index: redirect in /home/www/site.com/index.php on line 27
" }

Re: Recherche authentification TOKEN

par @rthur » 18 avr. 2017, 22:35

Bonjour,

Et que donne un var_dump() de ta variable $_POST["redirect"] ?

Re: Recherche authentification TOKEN

par azizss » 18 avr. 2017, 21:18

j'ai cette erreur " Warning: Header may not contain more than a single header, new line detected in /home/www/site.com/index.php on line 10"

ligne 10 : header("Location:".$_POST["redirect"]);
Je comprend pas
Merci de votre aide,

Re: Recherche authentification TOKEN

par azizss » 18 avr. 2017, 20:51

Bonsoir tous le monde,

Je cherche un tutorial qui explique comment implementer oauth2 server php ou m'aider sur celui là.
J'ai suivie l'exemple

https://freedom-man.com/blog/oauth2-provider-dev/

mais cela ne fonctionne pas bien, si quelqu'un pouvez m'aider.
Ce serai sympas merci a vous,