Maison développement back-end tutoriel php Une brève discussion sur le développement de l'interface APP avec PHP (basée sur le framework TP3.2) (avis personnel)

Une brève discussion sur le développement de l'interface APP avec PHP (basée sur le framework TP3.2) (avis personnel)

Apr 13, 2018 am 11:29 AM
php 开发

Le contenu partagé avec vous dans cet article concerne une brève discussion sur le développement de l'interface APP en PHP (basé sur le framework TP3.2) (opinion personnelle). Les amis dans le besoin peuvent s'y référer

PHP est très puissant et peut être utilisé pour diverses choses, notamment le développement Web, les petits programmes, les centres commerciaux et bien sûr les applications.

Puisque le blogueur se prépare également à réaliser un projet APP, je vais écrire mon expérience afin de pouvoir la revoir à l'avenir, haha.
Parce que nous écrivons des interfaces, la sécurité passe avant tout et nous ne pouvons tuer personne, n'est-ce pas ? Nous devons donc négocier une méthode de cryptage d'interface avec le front-end, et chaque interface en a besoin (cela peut être appelé cryptage de jeton, ou cryptage de signe, selon comment vous aimez l'appeler)
Laissez-moi vous parler de la façon dont j'ai cryptez-le. Oui, je suggère que les interfaces soient toutes livrées par courrier, donc les paramètres suivants sont tous basés sur la livraison post

1 Tout d'abord, triez les paramètres transmis dans le dictionnaire de clés et supprimez le. valeur du jeton (PHP fournit une fonction A ksort, qui par défaut est le tri de code ASICC standard. Il y a un piège ici, c'est-à-dire que le tri d'IOS est parfois différent de celui d'Android, mais seulement dans certains cas)

2. Concaténez les valeurs triées (PHP fournit une fonction http_build_query)
3. Collez une clé personnalisée après la chaîne triée (cela doit être cohérent avec le front-end), puis cryptez md5
4. Convertissez-le en majuscules en tant que jeton et utilisez-le comme paramètre.
Postons le code

function makeToken($data){
    //$data就是$_POST传过来的参数
    unset($data['token']);    unset($data['auth_key']); //这个下面会说到
    ksort($data);    $string = http_build_query($data);    if(empty($data)){        $string = 'key=CT01aVVsCkSxYdxi55ml';
    } else {        $string = $string .'&key=CT01aVVsCkSxYdxi55ml';
    }    $string = md5($string);    $result = strtoupper($string);    return $result;
}
Copier après la connexion
Copier après la connexion
<?phpnamespace Api\Controller;use Think\Controller;/**
 * 公共控制器
 */class CommonController extends Controller {

    public function _initialize(){
        // // //验证token
        $token = I(&#39;token&#39;);        $sal = makeToken($_POST);        if($sal!=$token){            $result = ajaxR(404,&#39;认证失败&#39;);            $this->ajaxReturn($result);
        }

    }
}
Copier après la connexion
Copier après la connexion
Passons le jeton généré par le front-end en paramètre, puis comparons-le avec le jeton que vous avez généré. S'il est erroné, le jeton le sera. Si la vérification échoue, l'interface n'est pas accessible.

Certaines interfaces font exception. Elles peuvent demander des données directement sans paramètres, il vous suffit donc de chiffrer la clé personnalisée avec md5, c'est-à-dire de chiffrer la chaîne key=CT01aVVsCkSxYdxi55ml Bien sûr, cette chaîne Vous pouvez le faire comme vous le souhaitez. , l'essentiel est de négocier avec le front-end.
Avant le tri des paramètres, c'est-à-dire avant http_build_query, vous devez supprimer le jeton et la auth_key transmis depuis le front-end (sans parler de cela en premier), puis participer au tri. Cela doit également être négocié avec le front-end. .

Parlons ensuite de auth_key. Tout le monde sait que la session est utilisée pour mémoriser le statut de connexion de l'utilisateur à la page Web, et l'application doit également se connecter au statut de l'utilisateur. Ici, j'utilise une chaîne auto-cryptée pour mémoriser le statut de connexion de l'utilisateur, appelée paramètre auth_key.

Vous pouvez définir vous-même les règles de génération auth_key. Après vous être enregistré et connecté à l'APP, stockez cette chaîne dans l'utilisateur correspondant et renvoyez-la au front-end. Chaque accès après le front-end portera ce paramètre auth_key. peut interroger les informations pertinentes de cet utilisateur via ce paramètre.
Bien sûr, vous pouvez également définir une limite de temps sur cette auth_key, par exemple, lui donner une période de 7 jours, l'appeler dans chaque méthode du projet pour voir si elle a expiré, et si elle expire, renvoyer un statut de connexion au front-end Invalide, déconnectez-vous.
En fait, il n'est pas difficile de développer l'interface de l'APP. L'essentiel est de négocier avec le front-end et ce sera facile à faire. Généralement, ce que nous retournons est au format json, comme suit

{
    "code": 200,
    "message": "获取信息成功",
    "data": {
        "lng": "113.743393",
        "lat": "23.015902",
    }}
Copier après la connexion
Copier après la connexion
Définissez le code d'état, les informations et les données renvoyés, ce qui est essentiel.

PHP est très puissant et peut être utilisé pour diverses choses, notamment le développement Web, les petits programmes, les centres commerciaux et bien sûr les applications.

Puisque le blogueur se prépare également à réaliser un projet APP, je vais écrire mon expérience afin de pouvoir la revoir à l'avenir, haha.
Parce que nous écrivons des interfaces, la sécurité passe avant tout et nous ne pouvons tuer personne, n'est-ce pas ? Nous devons donc négocier une méthode de cryptage d'interface avec le front-end, et chaque interface en a besoin (cela peut être appelé cryptage de jeton, ou cryptage de signe, selon comment vous aimez l'appeler)
Laissez-moi vous parler de la façon dont j'ai cryptez-le. Oui, je suggère que les interfaces soient toutes livrées par courrier, donc les paramètres suivants sont tous basés sur la livraison post

1 Tout d'abord, triez les paramètres transmis dans le dictionnaire de clés et supprimez le. valeur du jeton (PHP fournit une fonction A ksort, qui par défaut est le tri de code ASICC standard. Il y a un piège ici, c'est-à-dire que le tri d'IOS est parfois différent de celui d'Android, mais seulement dans certains cas)

2. Concaténez les valeurs triées (PHP fournit une fonction http_build_query)
3. Collez une clé personnalisée après la chaîne triée (cela doit être cohérent avec le front-end), puis cryptez md5
4. Convertissez-le en majuscules en tant que jeton et utilisez-le comme paramètre.
Postons le code

function makeToken($data){
    //$data就是$_POST传过来的参数
    unset($data[&#39;token&#39;]);    unset($data[&#39;auth_key&#39;]); //这个下面会说到
    ksort($data);    $string = http_build_query($data);    if(empty($data)){        $string = &#39;key=CT01aVVsCkSxYdxi55ml&#39;;
    } else {        $string = $string .&#39;&key=CT01aVVsCkSxYdxi55ml&#39;;
    }    $string = md5($string);    $result = strtoupper($string);    return $result;
}
Copier après la connexion
Copier après la connexion
<?phpnamespace Api\Controller;use Think\Controller;/**
 * 公共控制器
 */class CommonController extends Controller {

    public function _initialize(){
        // // //验证token
        $token = I(&#39;token&#39;);        $sal = makeToken($_POST);        if($sal!=$token){            $result = ajaxR(404,&#39;认证失败&#39;);            $this->ajaxReturn($result);
        }

    }
}
Copier après la connexion
Copier après la connexion
Passons le jeton généré par le front-end en paramètre, puis comparons-le avec le jeton que vous avez généré. S'il est erroné, le jeton le sera. Si la vérification échoue, l'interface n'est pas accessible.

Certaines interfaces font exception. Elles peuvent demander des données directement sans paramètres, il vous suffit donc de chiffrer la clé personnalisée avec md5, c'est-à-dire de chiffrer la chaîne key=CT01aVVsCkSxYdxi55ml Bien sûr, cette chaîne Vous pouvez le faire comme vous le souhaitez. , l'essentiel est de négocier avec le front-end.
Avant le tri des paramètres, c'est-à-dire avant http_build_query, vous devez supprimer le jeton et la auth_key transmis depuis le front-end (sans parler de cela pour l'instant), puis participer au tri. Cela doit également être négocié avec le front. fin.

接下来说下auth_key吧,大家都知道session是用来记住web页面的用户登录状态的,而APP也是需要登录用户状态的。这里我使用的一个自己加密的一串用来记住用户登录状态,叫auth_key的参数。
auth_key的生成规则你可以自己定义,在APP端注册登录之后,把这个串存入相应的用户里面,并且将其返回给前端,前端之后的每个访问都带上这个auth_key这个参数,而你就可以通过这个参数来查询这个用户的相关信息。
当然,你也可以对这个auth_key进行一个时间的限制,例如给个7天的期限,在项目的每个方法都调用一下,看看是否过期了,过期了就给前端返回一个登陆状态失效,退出登录。
其实开发APP的接口不难,主要和前端协商好,就很容易办。一般我们返回的都是json格式,如下

{
    "code": 200,
    "message": "获取信息成功",
    "data": {
        "lng": "113.743393",
        "lat": "23.015902",
    }}
Copier après la connexion
Copier après la connexion

定义好返回的状态码和信息还有数据,这是必不可少的。

相关推荐:

浅谈PHP的跨域问题

浅谈PHP面向对象编程

浅谈php字符串反转实例详解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles