当前位置:网站首页>The differences and connections among cookies, sessions, JWT, and tokens
The differences and connections among cookies, sessions, JWT, and tokens
2022-07-05 06:45:00 【Wei Yunshu】
Cookie、Session、JWT、Token Differences and connections
List of articles
http Stateless request
- Network communication uses http agreement , There is no correlation between each request
Access interface requires authentication
- The back-end interface cannot be exposed to the outside , Only authenticated requests can be accessed , Common authentication methods such as : User name, password 、 SMS verification code , but http It's stateless , Every request requires authentication ;
- You don't want to enter your user name and password every time you send a request , You can put the user name and password in the browser , But once the browser is attacked , All passwords will be revealed ;
Cookie
- There is a store in the browser Cookie The place of ,Cookie It can store <key,value> This key value pair , You can also store the corresponding expiration date , And the corresponding access domain address , When the user accesses the domain name , Just get the corresponding cookie;
- When the user accesses the establishment request with the user name and password for the first time , The server can put the user name and password in cookie among , When the browser is next used , You can log in directly , But this is no different from streaking , It's very unsafe ;
Session
- The server memory stores the client status information , After client access , Create a unique identifier session_id And other corresponding information , Stored locally , And put this session_id Put it in the returned cookie among , Return to browser ; The next time the browser accesses the service , Just take it session_id As identification , Server and storage session_id compare ; When... In the server session_id The expiration date is up , The corresponding expired , If the user exits , In the browser cookie Delete accordingly
JWT
JWT(Json web token) It's made up of three parts :
- Header : describe JWT Metadata . Defines the algorithm to generate the signature and Token The type of .
- Payload( load ): It is used to store the data that needs to be transferred
- Signature( Signature ): Server pass Payload、Header And a key (secret) Use Header The signature algorithm specified in ( The default is HMAC SHA256) Generate .
After the user logs in , Server generation JWT, Put some insensitive information on JWT Of Payload among , Send it back to the user ;
The user will get JWT As your own identity information , Direct login ; But such JWT User controlled , Before it fails , The server has no control permission ;
Token
- A string that does not carry specific information , Store user information in Redis or Mysql Wait in memory ,Token As its key
- The user login , take Token Return to the user , After each login, first pass token Read user information , Then check it ;
Refresh Token
- Token Have time limit ,Refresh Token The actual effect is slightly longer ,Token After the failure , use Refresh Token Refresh Token, keep Token The continuity of
Three questions :
Cookie Store as a client 、session Store as a server , take Session_id As the association between client and server , Client pass Session_id Verify your login status ;Cookie( user name + Encrypted password ) And JWT So like ;Cookie/session And token So like , What is the main difference between them ?
Session Stored in a single server , When users are online at the same time, the amount is ,Session It takes up more memory ; And when the website adopts cluster deployment , Multiple servers need to share user login status . That will Session Put it in mysql Don't you just store it in ?
Cookie There will be cross domain problems ,token There is no cross domain problem , Then why not Cookie As a token The use of ?
边栏推荐
- Design specification for mobile folding screen
- Knapsack problem acwing 9 Group knapsack problem
- Preemption of CFS scheduling
- 2048 project realization
- Interval problem acwing 906 Interval grouping
- NVM Downloading npm version 6.7.0... Error
- 达梦数据库全部
- Suppose a bank's ATM machine, which allows users to deposit and withdraw money. Now there is 200 yuan in an account, and both user a and user B have the right to deposit and withdraw money from this a
- kata container
- All English in the code
猜你喜欢

5. Oracle TABLESPACE

.net core踩坑实践

Financial risk control practice -- feature derivation based on time series

Bash exercise 17 writing scripts to install the server side of FRP reverse proxy software

Suppose a bank's ATM machine, which allows users to deposit and withdraw money. Now there is 200 yuan in an account, and both user a and user B have the right to deposit and withdraw money from this a

Vant Weapp SwipeCell设置多个按钮

TCP's understanding of three handshakes and four waves

Stack acwing 3302 Expression evaluation

数据库Mysql全部

Game theory acwing 892 Steps Nim game
随机推荐
6-3 find the table length of the linked table
Rehabilitation type force deduction brush question notes D3
La redirection de l'applet Wechat ne déclenche pas onload
Vant weave swipecell sets multiple buttons
namespace
Game theory acwing 891 Nim games
The “mode“ argument must be integer. Received an instance of Object
Use the Paping tool to detect TCP port connectivity
kata container
Find the combination number acwing 887 Find combination number III
GDB code debugging
2048 project realization
How to answer when you encounter a jet on CSDN?
confidential! Netease employee data analysis internal training course, white whoring! (attach a data package worth 399 yuan)
Configuration method and configuration file of SolidWorks GB profile library
[Chongqing Guangdong education] National Open University 2018 autumn 0702-22t contemporary Chinese political system reference questions
Stack acwing 3302 Expression evaluation
TCP's understanding of three handshakes and four waves
Design specification for mobile folding screen
[moviepy] unable to find a solution for exe