Documentation Frappe Framework

Frappe Framework

Ajouter un fournisseur de connexion sociale

Un nouveau fournisseur se déclare dans le code, dans les options du DocType Social Login Key, puis dans une méthode de connexion accessible aux invités.

1 min de lectureMis à jour le Source : docs.frappe.io

À quoi sert ce guide

La page explique comment ajouter un fournisseur de connexion sociale à Frappe, en vue d’une pull request.

Déclarer le fournisseur

Dans SocialLoginKey.get_social_login_provider, l’exemple Frappe renseigne : provider_name, enable_social_login à 1, custom_base_url à 1, une icône, redirect_url vers frappe.www.login.login_via_frappe, api_endpoint vers frappe.integrations.oauth2.openid_profile, api_endpoint_args à None, authorize_url, access_token_url, et auth_url_data avec response_type code et scope openid.

Ajoutez la même clé, avec la même casse, dans les options du champ sélection social_login_provider du DocType Social Login Key. L’exemple est Frappe.

Méthode invitée

Quand l’utilisateur ajoute le fournisseur et l’active, le serveur du fournisseur renvoie l’Authorization Code vers le redirect_url du même serveur. Il faut une méthode en liste blanche, accessible aux invités, dans frappe.integrations.oauth2_logins. L’exemple cité est login_via_office365.

Deux façons d’obtenir le profil OpenID sont montrées. Beaucoup d’implémentations OAuth 2.0 et OpenID Connect existent ; la source n’en détaille que deux.

Profil via le point d’entrée OpenID :

python
@frappe.whitelist(allow_guest=True)
def login_via_frappe(code, state):
    login_via_oauth2("frappe", code, state, decoder=json.loads)

Profil via id_token :

python
@frappe.whitelist(allow_guest=True)
def login_via_office365(code, state):
    login_via_oauth2_id_token("office_365", code, state, decoder=json.loads)

Point d’attention

allow_guest=True est requis sur ces méthodes. Le nom passé à login_via_oauth2 (frappe, office_365) doit correspondre au fournisseur déclaré. La saisie côté bureau est dans Social Login Key.

Ajouter un fournisseur social à Frappe | ERPNext Lab