Maison > Questions et réponses > le corps du texte
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 !
巴扎黑2017-05-16 13:01:53
Vous pouvez jeter un œil à jwt
Autonome : la charge utile contient toutes les informations nécessaires à l'utilisateur
巴扎黑2017-05-16 13:01:53
Je définis le jeton et l'heure d'expiration, et j'utilise le jeton pour vérifier
漂亮男人2017-05-16 13:01:53
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.
仅有的幸福2017-05-16 13:01:53
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. username
和 password
,到服务器端做验证,通过才继续下边业务逻辑。
优点:防止了服务器端 api
被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。
2.第一次请求,要求 username
和 password
,验证通过,发送 cookie
到客户端, app
保存 cookie
值。
每次请求带上 cookie
。
优点:和 pc
上浏览器认证的原理一样了。
以上两点,只有注册用户,才能有权访问业务逻辑。
而有些 app
有大量的不需要注册数据api
3.制定一个 token
生成规则,按某些服务器端和客户端都拥有的共同属性生成一个随机串,客户端生成这个串,服务器收到请求也校验这个串。
缺点:随机串生成规则要保密。
🎜Sur les deux points ci-dessus, seuls les utilisateurs enregistrés peuvent avoir accès à la logique métier.如果我的答案解决了你的问题,请点击
2. La première requête nécessite un采纳答案
nom d'utilisateur
et unmot de passe
. Après vérification, uncookie
est envoyé au client,application
. > Enregistrez la valeur ducookie
.
Apportez uncookie
à chaque demande.
Avantages : Le principe d'authentification du navigateur surpc
est le même.
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. . 🎜Si ma réponse résout votre problème, veuillez cliquer surAccepter la réponse
🎜🎜répondre0
ringa_lee2017-05-16 13:01:53
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
滿天的星座2017-05-16 13:01:53
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
大家讲道理2017-05-16 13:01:53
Notre entreprise a un jeton et un délai d'expiration. Chaque fois que vous vous connectez, le jeton sera actualisé
.PHPz2017-05-16 13:01:53
C'est ce que j'ai demandé sur notre site en cas de doute
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 !
PHP中文网2017-05-16 13:01:53
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
.習慣沉默2017-05-16 13:01:53
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
user_id
;🎜