mysql - [php] Concernant le problème de l'interface de l'application de développement php, veuillez demander à un expert expérimenté d'y répondre
某草草
某草草 2017-05-16 12:59:53
0
10
694

Interface de l'application de développement php, problème de connexion utilisateur

La situation est la suivante. Après une connexion réussie, l'interface de connexion utilisateur précédente n'est pas enregistrée sur le serveur session Elle peut être enregistrée côté application. Ainsi, même si l'utilisateur se connecte avec succès, lors du réglage de certaines interfaces, user_id doit quand même être passé en paramètre au lieu d'être obtenu depuis le session du serveur.

Aujourd'hui, je souhaite modifier l'interface de connexion et d'enregistrement. Mon collègue a dit que l'interface de l'application n'avait pas le concept de session, mais j'ai toujours l'impression qu'il devrait y avoir d'autres moyens de stocker les sessions utilisateur sur le serveur.

Je veux donc demander à tous les maîtres :

1. php开发app接口有没有`session`的概念?
2. 如果没有,用户会话是怎么处理的?就是当前是否在登录状态

Merci à tous !

某草草
某草草

répondre à tous(10)
巴扎黑

Vous pouvez jeter un œil à jwt
Autonome : la charge utile contient toutes les informations nécessaires à l'utilisateur

巴扎黑

Je définis le jeton et l'heure d'expiration, et j'utilise le jeton pour vérifier

漂亮男人

Tout d'abord, vous créez une interface de connexion. L'application appelle cette interface. Après avoir vérifié le nom d'utilisateur et le mot de passe transmis, renvoyez-lui un jeton.

Jeton, vous créez une table à enregistrer, et la table stocke le jeton user_id expire_data et d'autres champs. Notez que le jeton et l'id_utilisateur sont uniques.

Chaque fois qu'il demandera d'autres interfaces à l'avenir, il lui suffira de vous apporter ce jeton et vous pourrez vérifier le jeton.

Le jeton transmis est crypté/expiré/garanti d'être unique, ce qui est essentiellement cela.

仅有的幸福

1. Apportez l'utilisateur nom d'utilisateur et mot de passe dans l'en-tête de la requête, accédez au serveur pour vérification, puis poursuivez la logique métier après avoir transmis la requête.
Avantages : empêche l'api côté serveur d'être appelée à volonté. Inconvénients : le nom d'utilisateur et le mot de passe sont échangés à chaque fois, le nombre d'interactions est important et la transmission en texte clair du mot de passe n'est pas sécurisée. usernamepassword ,到服务器端做验证,通过才继续下边业务逻辑。
优点:防止了服务器端 api 被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。

2.第一次请求,要求 usernamepassword ,验证通过,发送 cookie 到客户端, app 保存 cookie 值。
每次请求带上 cookie
优点:和 pc 上浏览器认证的原理一样了。

以上两点,只有注册用户,才能有权访问业务逻辑。
而有些 app有大量的不需要注册数据api

3.制定一个 token 生成规则,按某些服务器端和客户端都拥有的共同属性生成一个随机串,客户端生成这个串,服务器收到请求也校验这个串。
缺点:随机串生成规则要保密。

如果我的答案解决了你的问题,请点击采纳答案

2. La première requête nécessite un nom d'utilisateur et un mot de passe. Après vérification, un cookie est envoyé au client, application. > Enregistrez la valeur du cookie.
Apportez un cookie à chaque demande.
Avantages : Le principe d'authentification du navigateur sur pc est le même.
🎜Sur les deux points ci-dessus, seuls les utilisateurs enregistrés peuvent avoir accès à la logique métier.
Et certaines applications disposent d'un grand nombre d'API qui ne nécessitent pas de données d'enregistrement🎜 🎜3. Développez une règle de génération de token pour générer une chaîne aléatoire basée sur certains attributs communs partagés par le serveur et le client. Le client génère cette chaîne, et le serveur vérifie cette chaîne à la réception de la demande. .
Inconvénients : Les règles de génération de chaînes aléatoires doivent rester confidentielles. 🎜
🎜Si ma réponse résout votre problème, veuillez cliquer sur Accepter la réponse🎜🎜
左手右手慢动作

Vous pouvez procéder ainsi. Différents utilisateurs obtiennent différents jetons via l'interface d'autorisation, définissent le délai d'expiration du jeton, laissent le client mettre le jeton dans l'en-tête de chaque demande et mettent à jour le jeton régulièrement

滿天的星座

Utilisez le jeton pour remplacer le session_id traditionnel stocké dans le cookie client, puis le jeton est utilisé comme nom de clé dans des bases de données telles que redis, et la valeur de la clé est l'uid de l'utilisateur, et le session_id peut être simulé via le haut- mécanisme d'expiration

大家讲道理

Notre entreprise a un jeton et un délai d'expiration. Chaque fois que vous vous connectez, le jeton sera actualisé

.
PHPzhong

C'est ce que j'ai demandé sur notre site en cas de doute

  1. Votre collègue a dit que l'application n'avait pas la notion de séance, je ne pense pas que ce soit exact ! J'espère que mes questions précédentes vous seront utiles !

Ty80

La connexion se produit lorsque le serveur génère un identifiant de connexion réussi et le renvoie au client. La demande du client apporte l'identifiant de connexion et le serveur vérifie les informations de l'utilisateur en se connectant

.
習慣沉默

Le moyen sûr est access_token. Pour ce point, vous pouvez jeter un œil à l’interface API de WeChat ;access_token。这点可以看看微信的api接口;

简单做法,就是user_id

Le moyen le plus simple est user_id ;🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal