IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Accès à un site tiers avec OAUTH : recherche exemples de code


Sujet :

Sécurité

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2020
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Accès à un site tiers avec OAUTH : recherche exemples de code
    Bonsoir,

    je souhaiterais permettre à des users de mon site Drupal 10 de s'authentifier sur un site non-drupal avec les codes d'accès de drupal. Et que drupal réalise l'authentification.

    Dans mon fichier protégé, je mets ce code pas satisfaisant) :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    session_start();
    require_once 'vendor/autoload.php';
     
    use League\OAuth2\Client\Provider\GenericProvider;
     
    $provider = new GenericProvider([
        'clientId'                => 'mondrupal_client_id',
        'clientSecret'            => 'mondrupal_client_secret',
        'redirectUri'             => 'http://pasdrupal.net/callback.php',
        'urlAuthorize'            => 'https://mondrupal.org/oauth/authorize',
        'urlAccessToken'          => 'https://mondrupal.org/oauth/token',
        'urlResourceOwnerDetails' => 'https://mondrupal.org/user',
        'scopes'                  => 'mon_scope',
    ]);
     
    // Vérifiez si le paramètre 'code' est présent dans l'URL
    if (!isset($_GET['code'])) {
        exit('Erreur d\'authentification : code non fourni.');
    }
     
    try {
        // Récupérez le jeton d'accès en échangeant le code d'autorisation
        $accessToken = $provider->getAccessToken('authorization_code', [
            'code' => $_GET['code']
        ]);
     
        // Stockez le jeton d'accès dans la session
        $_SESSION['access_token'] = $accessToken;
     
        // Vérifiez si le paramètre 'redirect' est présent dans l'URL
        $redirect = isset($_GET['redirect']) ? $_GET['redirect'] : 'default-page.php';
     
        // Redirigez vers la page de redirection dynamique après la récupération du jeton d'accès
        header('Location: http://pasdrupal.net/' . $redirect);
        exit();
    } catch (\Exception $e) {
        // Gérez les exceptions et affichez un message d'erreur approprié
        echo "Erreur d'authentification : " . $e->getMessage();
        exit();
    }
    ?>

    Que mettre dans le fichier callback.php ?

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    dans callback.php vous allez recevoir l'information de l'utilisateur qui est connecté sur le 1er site.
    et partir de ces informations, le code devra vérifier qu'elles viennent bien du 1er site et pas d'un utilisateur malveillant. cela se fait souvent en vérifiant la signature associée aux données, je pense que vous trouverez la méthode à utiliser dans la documentation de la bibliothèque.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/08/2014, 01h23
  2. [1.x] Création de site Blanc avec Symfony sans duplication de code ?
    Par boby6killer dans le forum Symfony
    Réponses: 11
    Dernier message: 19/01/2011, 12h50
  3. [Débutant] Recherche exemple de code source TClientDataSet-Data-Delta-LogChanges
    Par o_live dans le forum C++Builder
    Réponses: 0
    Dernier message: 21/10/2010, 12h59
  4. recherche exemple de code avec TVarRec
    Par o_live dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/06/2009, 17h07
  5. prob d'acces au site web avec sharepoint designer
    Par enamorada dans le forum SharePoint
    Réponses: 13
    Dernier message: 05/03/2009, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo