精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Token,Session,Cookie,Jwt,Oauth2傻傻分不清楚

開發 前端
Cookie是存儲在瀏覽器端的一小段文本數據,由服務器通過HTTP響應頭的Set-Cookie字段發送給瀏覽器,瀏覽器隨后會自動在每次請求中通過Cookie頭將其帶回給服務器。

前言

最近發現有些小伙伴,對Token、Session、Cookie、JWT、OAuth2這些概念非常容易搞混。

有些小伙伴在工作中可能會遇到過這樣的困惑:

  • 做登錄功能時,到底該用Session還是JWT?
  • OAuth2和Token是什么關系?
  • 為什么有的方案要把Token存在Cookie里?

今天這篇文章專門跟大家一起聊聊這個話題,希望對你會有所幫助。

一、從餐廳就餐模型開始講

為了讓大家更好理解,我先用一個餐廳就餐的比喻來解釋這些概念:

圖片圖片

現在,讓我們深入每個概念的技術細節。

二、Cookie:HTTP的世界身份證

2.1 什么是Cookie?

Cookie是存儲在瀏覽器端的一小段文本數據,由服務器通過HTTP響應頭的Set-Cookie字段發送給瀏覽器,瀏覽器隨后會自動在每次請求中通過Cookie頭將其帶回給服務器。

工作原理

圖片圖片

2.2 Cookie實戰代碼

// 服務器設置Cookie
@PostMapping("/login")
public ResponseEntity login(@RequestBody User user, HttpServletResponse response) {
    if (authService.authenticate(user)) {
        Cookie cookie = new Cookie("session_id", generateSessionId());
        cookie.setMaxAge(3600); // 1小時有效期
        cookie.setHttpOnly(true); // 防止XSS攻擊
        cookie.setSecure(true); // 僅HTTPS傳輸
        cookie.setPath("/"); // 對整個站點有效
        response.addCookie(cookie);
        return ResponseEntity.ok().build();
    }
    return ResponseEntity.status(401).build();
}

// 讀取Cookie
@GetMapping("/profile")
public ResponseEntity getProfile(@CookieValue("session_id") String sessionId) {
    User user = sessionService.getUserBySession(sessionId);
    return ResponseEntity.ok(user);
}

2.3 Cookie的重要屬性

屬性

作用

安全建議

HttpOnly

防止JavaScript訪問

必須設置為true,防XSS

Secure

僅通過HTTPS傳輸

生產環境必須設置為true

SameSite

控制跨站請求時是否發送Cookie

建議設置為Strict或Lax

Max-Age

設置Cookie有效期

根據業務安全性要求設置

三、Session:服務端的用戶檔案

3.1 什么是Session?

Session是存儲在服務器端的用戶狀態信息。服務器為每個用戶創建一個唯一的Session ID,并通過Cookie將這個ID傳遞給瀏覽器,瀏覽器后續請求時帶上這個ID,服務器就能識別用戶身份。

Session存儲結構

// 典型的Session數據結構
public class UserSession {
    private String sessionId;
    private String userId;
    private String username;
    private Date loginTime;
    private Date lastAccessTime;
    private Map<String, Object> attributes; // 自定義屬性
    
    // 省略getter/setter
}

3.2 Session實戰代碼

// 基于Spring Session的實現
@PostMapping("/login")
public String login(@RequestParam String username, 
                   @RequestParam String password,
                   HttpSession session) {
    User user = userService.authenticate(username, password);
    if (user != null) {
        // 將用戶信息存入Session
        session.setAttribute("currentUser", user);
        session.setAttribute("loginTime", new Date());
        return"redirect:/dashboard";
    }
    return"login?error=true";
}

@GetMapping("/dashboard")
public String dashboard(HttpSession session) {
    // 從Session獲取用戶信息
    User user = (User) session.getAttribute("currentUser");
    if (user == null) {
        return"redirect:/login";
    }
    return"dashboard";
}

3.3 Session的存儲方案

1. 內存存儲(默認)

# application.yml
server:
  servlet:
    session:
      timeout: 1800 # 30分鐘過期時間

2. Redis分布式存儲

@Configuration
@EnableRedisHttpSession // 啟用Redis Session存儲
public class SessionConfig {
    @Bean
    public LettuceConnectionFactory connectionFactory() {
        return new LettuceConnectionFactory();
    }
}

3. Session集群同步問題

圖片圖片

四、Token:去中心化的身份令牌

4.1 什么是Token?

Token是一種自包含的身份憑證,服務器不需要在服務端存儲會話狀態,所有必要信息都包含在Token本身中。

Token vs Session 核心區別

圖片圖片

4.2 Token實戰代碼

// 生成Token
public String generateToken(User user) {
    long currentTime = System.currentTimeMillis();
    return JWT.create()
            .withIssuer("myapp") // 簽發者
            .withSubject(user.getId()) // 用戶ID
            .withClaim("username", user.getUsername())
            .withClaim("role", user.getRole())
            .withIssuedAt(new Date(currentTime)) // 簽發時間
            .withExpiresAt(new Date(currentTime + 3600000)) // 過期時間
            .sign(Algorithm.HMAC256(secret)); // 簽名密鑰
}

// 驗證Token
public boolean validateToken(String token) {
    try {
        JWTVerifier verifier = JWT.require(Algorithm.HMAC256(secret))
                .withIssuer("myapp")
                .build();
        DecodedJWT jwt = verifier.verify(token);
        returntrue;
    } catch (JWTVerificationException exception) {
        returnfalse;
    }
}

五、JWT:現代化的Token標準

5.1 什么是JWT?

JWT(JSON Web Token)是一種開放標準(RFC 7519),用于在各方之間安全地傳輸信息作為JSON對象。

這種信息可以被驗證和信任,因為它是數字簽名的。

JWT結構

header.payload.signature

解碼示例

// Header
{
"alg": "HS256",
"typ": "JWT"
}

// Payload
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022,
"exp": 1516242622
}

// Signature
HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

5.2 JWT實戰代碼

// 創建JWT
public String createJWT(User user) {
    return Jwts.builder()
            .setHeaderParam("typ", "JWT")
            .setSubject(user.getId())
            .setIssuer("myapp")
            .setIssuedAt(new Date())
            .setExpiration(new Date(System.currentTimeMillis() + 3600000))
            .claim("username", user.getUsername())
            .claim("role", user.getRole())
            .signWith(SignatureAlgorithm.HS256, secret.getBytes())
            .compact();
}

// 解析JWT
public Claims parseJWT(String jwt) {
    return Jwts.parser()
            .setSigningKey(secret.getBytes())
            .parseClaimsJws(jwt)
            .getBody();
}

// 在Spring Security中使用JWT
@Component
publicclass JwtFilter extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest request, 
                                  HttpServletResponse response, 
                                  FilterChain chain) {
        String token = resolveToken(request);
        if (token != null && validateToken(token)) {
            Authentication auth = getAuthentication(token);
            SecurityContextHolder.getContext().setAuthentication(auth);
        }
        chain.doFilter(request, response);
    }
}

5.3 JWT的最佳實踐

1. 安全存儲

// 前端安全存儲方案
// 不推薦:localStorage(易受XSS攻擊)
// 推薦:HttpOnly Cookie(防XSS)或內存存儲

2. 令牌刷新機制

// 雙Token機制:Access Token + Refresh Token
publicclass TokenPair {
    private String accessToken;  // 短期有效:1小時
    private String refreshToken; // 長期有效:7天
}

// 刷新令牌接口
@PostMapping("/refresh")
public ResponseEntity refresh(@RequestBody RefreshRequest request) {
    String refreshToken = request.getRefreshToken();
    if (validateRefreshToken(refreshToken)) {
        String userId = extractUserId(refreshToken);
        String newAccessToken = generateAccessToken(userId);
        return ResponseEntity.ok(new TokenPair(newAccessToken, refreshToken));
    }
    return ResponseEntity.status(401).build();
}

六、OAuth 2.0:授權框架之王

6.1 什么是OAuth 2.0?

OAuth 2.0是一個授權框架,允許第三方應用在獲得用戶授權后,代表用戶訪問受保護的資源。

OAuth 2.0角色

  • 資源所有者(Resource Owner):用戶
  • 客戶端(Client):第三方應用
  • 授權服務器(Authorization Server):頒發訪問令牌
  • 資源服務器(Resource Server):托管受保護資源

6.2 OAuth 2.0授權碼流程

圖片圖片

6.3 OAuth 2.0實戰代碼

// Spring Security OAuth2配置
@Configuration
@EnableAuthorizationServer
publicclass AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
    
    @Autowired
    private AuthenticationManager authenticationManager;
    
    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory()
                .withClient("clientapp")
                .secret(passwordEncoder.encode("123456"))
                .authorizedGrantTypes("authorization_code", "refresh_token")
                .scopes("read", "write")
                .redirectUris("http://localhost:8080/callback");
    }
    
    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
        endpoints.authenticationManager(authenticationManager)
                .tokenStore(tokenStore())
                .accessTokenConverter(accessTokenConverter());
    }
}

// 資源服務器配置
@Configuration
@EnableResourceServer
publicclass ResourceServerConfig extends ResourceServerConfigurerAdapter {
    
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/api/public/**").permitAll()
                .antMatchers("/api/private/**").authenticated()
                .antMatchers("/api/admin/**").hasRole("ADMIN");
    }
}

七、五大概念對比

為了讓大家更清晰地理解這五個概念的關系和區別,我準備了以下對比表格:

7.1 功能定位對比

概念

本質

存儲位置

主要用途

特點

Cookie

HTTP狀態管理機制

瀏覽器

維持會話狀態

自動攜帶,有大小限制

Session

服務端會話信息

服務器

存儲用戶狀態

服務端狀態,需要存儲管理

Token

訪問憑證

客戶端/服務端

身份認證

自包含,可驗證

JWT

Token的一種實現標準

客戶端/服務端

安全傳輸信息

標準化,自包含,可簽名

OAuth2

授權框架

不直接存儲

第三方授權

標準化授權流程

7.2 應用場景對比

場景

推薦方案

原因說明

傳統Web應用

Session + Cookie

簡單易用,生態成熟

前后端分離應用

JWT

無狀態,適合API認證

第三方登錄

OAuth 2.0

標準化授權,安全可靠

微服務架構

JWT

分布式認證,無需會話同步

移動端應用

Token

輕量級,適合移動網絡

7.3 安全考慮對比

安全威脅

Cookie方案防護

Token/JWT方案防護

XSS攻擊

HttpOnly Cookie

避免localStorage存儲

CSRF攻擊

SameSite Cookie

自定義Header+CSRF Token

令牌泄露

短期有效+HTTPS

短期有效+HTTPS+刷新機制

數據篡改

服務端驗證

簽名驗證

總結

通過今天的深入探討,我們可以得出以下結論:

  1. Cookie是載體:HTTP協議的狀態管理機制,是Session和Token的傳輸媒介之一。
  2. Session是狀態:服務端維護的會話狀態,需要借助Cookie或URL重寫來實現。
  3. Token是憑證:認證授權的憑證,可以放在Cookie、Header或URL中。
  4. JWT是標準:Token的一種標準化實現,自包含、可驗證、可信任。
  5. OAuth2是框架:授權框架,定義了完整的第三方授權流程。

最終建議

  • 簡單Web應用:Session + Cookie
  • 前后端分離:JWT + HTTP Header
  • 第三方授權:OAuth 2.0 + JWT

沒有最好的方案,只有最合適的方案。

理解每個技術的本質和適用場景,才能做出正確的架構決策。

責任編輯:武曉燕 來源: 蘇三說技術
相關推薦

2021-08-02 12:50:45

sessiontokenJava

2021-03-10 08:56:37

Zookeeper

2021-03-23 10:45:23

CookieSession前端

2022-05-15 21:52:04

typeTypeScriptinterface

2021-07-27 07:31:16

JavaArrayList數組

2024-02-29 09:08:56

Encoding算法加密

2020-10-30 08:20:04

SD卡TF卡存儲

2018-12-17 12:30:05

Kubernetes存儲存儲卷

2018-05-22 16:24:20

HashMapJavaJDK

2020-03-03 17:35:09

Full GCMinor

2025-08-18 03:25:00

2023-02-27 15:46:19

數據元元數據

2023-09-03 21:18:07

Python編程語言

2021-02-08 23:47:51

文件存儲塊存儲對象存儲

2025-08-14 08:21:17

PODAODTO

2025-05-12 08:40:00

前端監控DOM

2016-11-04 12:51:46

Unix網絡IO 模型

2021-11-09 06:01:35

前端JITAOT

2022-02-25 09:14:33

類變量共享實例變量

2024-11-04 00:00:03

viewportDOMSPA
點贊
收藏

51CTO技術棧公眾號

性生交生活影碟片| 99久久99久久精品国产| 不卡av播放| 久久精品欧美一区二区三区不卡| 国产精品电影在线观看| 免费精品在线视频| 国产极品模特精品一二| 91成人看片片| av 日韩 人妻 黑人 综合 无码| 免费av一级片| 麻豆精品视频在线观看| 久久久久久久国产精品| 韩国三级hd中文字幕| 精品国产亚洲一区二区在线观看| 欧美午夜丰满在线18影院| 亚洲亚洲精品三区日韩精品在线视频| 亚洲国产精品久久久久爰性色| 久热精品在线| 精品久久久91| 精品无码国产污污污免费网站 | 欧美性生交xxxxx| 成人在线网站| 五月婷婷激情综合| 国产av第一区| 91社区在线高清| 不卡视频免费播放| 成人精品视频久久久久| 国产精彩视频在线| 偷拍欧美精品| 亚洲视频在线观看| 香蕉久久久久久av成人| 四虎影视国产精品| 91国产丝袜在线播放| 国产特级淫片高清视频| 大地资源网3页在线观看| 99久久久久久| 国产欧美在线一区二区| av中文字幕免费| 蜜桃在线一区二区三区| 欧美诱惑福利视频| 日韩精品在线免费看| 一区二区三区午夜视频| 精品国产美女在线| 免费看91的网站| 竹菊久久久久久久| 日韩精品在线观看一区二区| 精品人妻二区中文字幕| 亚洲欧洲国产精品一区| 日韩一区二区电影网| 国产欧美激情视频| 久久电影天堂| 欧美日韩一区二区电影| 亚洲黄色小视频在线观看| 第84页国产精品| 亚洲成av人片观看| www.99热这里只有精品| 草草在线视频| 亚洲成a人在线观看| 日本a在线天堂| 日本在线视频网址| 亚洲二区在线观看| 成人在线观看毛片| 啦啦啦中文在线观看日本| 亚洲影视在线播放| 国产高清av在线播放| www.色在线| 狠狠躁夜夜躁人人躁婷婷91| 国产乱子伦农村叉叉叉| 亚洲日本天堂| 在线亚洲一区二区| 蜜桃免费在线视频| 玖玖精品在线| 日韩欧美精品三级| 男女一区二区三区| 禁果av一区二区三区| 主播福利视频一区| 国产传媒免费在线观看| 欧美日韩国产欧| 久久久伊人欧美| 麻豆成人免费视频| 裸体一区二区三区| 99c视频在线| 四虎精品在线| 国产精品污www在线观看| 日韩人妻精品一区二区三区| 日本高清在线观看视频| 日韩欧美第一页| 五月天av在线播放| 成人av动漫| 亚洲视频自拍偷拍| 国产97免费视频| 99精品欧美| 国产噜噜噜噜噜久久久久久久久| a毛片在线免费观看| 99久久精品情趣| 亚洲日本一区二区三区在线不卡| 中文字幕在线三区| 色播五月激情综合网| 黄色片子免费看| 亚洲制服一区| 欧美人成在线视频| 69av视频在线观看| 国产69精品久久久久毛片| 日本一区视频在线观看| 中文字幕伦理免费在线视频 | 中文字幕久久av| 国产精品一线| 色偷偷9999www| 91精品国产乱码久久久张津瑜| 蜜臀av一级做a爰片久久| 福利精品视频| 欧洲日本在线| 色狠狠av一区二区三区| 涩视频在线观看| 99久久精品费精品国产风间由美| 97在线视频免费观看| 国产精品久久777777换脸| 99精品国产视频| 2021国产视频| 日韩成人一区| 亚洲性无码av在线| 青青国产在线观看| 国产成a人亚洲| 吴梦梦av在线| 日韩av首页| 国产视频久久久| 国产精品50页| 高清久久久久久| 国产精品波多野结衣| 成人h在线观看| 亚洲欧美中文字幕| 日韩精品在线免费视频| 大胆亚洲人体视频| 亚洲av综合色区| 免费视频观看成人| 国产一区二区三区在线看| 亚洲男人第一av| 成人激情免费网站| 国产精品视频网站在线观看| 国产精品亚洲一区二区在线观看| 色噜噜狠狠狠综合曰曰曰| 中文av免费观看| 亚洲国产高清不卡| 狠狠热免费视频| 国产99久久| 国产成人综合一区二区三区| 亚洲色偷精品一区二区三区| 精品国产乱码久久久久久虫虫漫画 | 中文字幕人妻丝袜乱一区三区| 国产一区二区免费视频| 伊人色综合久久天天五月婷| 久久亚洲精品爱爱| 国产亚洲精品久久久久久牛牛| 久久精品视频1| 久久婷婷色综合| 免费男同深夜夜行网站| 国产成人精品免费视| 欧美中在线观看| 黄色av网站在线| 欧美午夜精品久久久久久超碰| 亚洲欧美va天堂人熟伦| 日本欧美一区二区在线观看| 亚洲ai欧洲av| 四虎影视成人精品国库在线观看| 久久婷婷国产麻豆91天堂| 国产偷人妻精品一区二区在线| 日韩美女视频一区| 一二三区视频在线观看| 在线视频日韩| 欧美中日韩免费视频| 精品无人乱码一区二区三区| 日韩中文在线中文网在线观看| 一级黄在线观看| 一级日本不卡的影视| 免费黄色a级片| 在线亚洲成人| 午夜一区二区三区| 试看120秒一区二区三区| 久久久久久有精品国产| 可以在线观看的av| 欧美猛男gaygay网站| 青娱乐国产在线视频| 91香蕉视频在线| 天天色综合社区| 欧美激情第二页| 欧美不卡福利| www欧美在线观看| 97国产精品视频人人做人人爱| 欧美日韩国产亚洲沙发| 欧美男女性生活在线直播观看| 欧美成人精品欧美一级私黄| 久久夜色精品国产噜噜av| 天天综合网久久| 雨宫琴音一区二区在线| 先锋影音一区二区三区| 凹凸成人在线| 国产精品嫩草视频| 超碰91在线观看| 久久精品成人欧美大片| 四虎影视在线观看2413| 日韩一级完整毛片| 日韩不卡高清视频| 午夜欧美2019年伦理 | 亚洲综合在线观看视频| 国产一区二区三区四区五区六区| 国产乱人伦偷精品视频不卡| aaaaaa亚洲| 欧美午夜影院| 一区二区三区四区欧美日韩| 欧美日韩导航| 亚洲一区二区中文| www.一区| 欧美亚洲成人精品| 日本性爱视频在线观看| 在线免费观看羞羞视频一区二区| 欧美视频久久久| 51精品秘密在线观看| 欧美 日韩 精品| 一二三四区精品视频| 黄色av免费播放| 26uuu精品一区二区| 在线观看一区二区三区视频| 奇米精品一区二区三区四区| 国产深夜男女无套内射| 国产主播精品| 日韩不卡视频一区二区| 欧美韩日高清| 天堂av一区二区| 国产欧美日韩| 女人一区二区三区| 日韩系列在线| 精品欧美日韩在线| 国产精品xxx在线观看| 97av自拍| 麻豆精品久久| 川上优av一区二区线观看| 成人全视频在线观看在线播放高清| 欧美亚洲另类制服自拍| 麻豆mv在线观看| 韩国三级日本三级少妇99| 色yeye免费人成网站在线观看| 精品国内产的精品视频在线观看| 在线国产91| 久久精品国产亚洲| 国产网站在线免费观看| 久久亚洲国产精品成人av秋霞| 91高清在线| 精品国产欧美一区二区五十路| 日本高清视频在线观看| 日韩一区二区三区在线播放| 色欧美激情视频在线| 日韩中文字幕国产精品| 日本免费在线视频| 欧美日本高清一区| 成人女同在线观看| 97国产在线观看| 天天综合网站| 国产精品自拍网| 91丨精品丨国产| yellow视频在线观看一区二区| 亚洲高清999| 国产乱码精品一区二区三区卡| 极品尤物一区| 欧美极品视频一区二区三区| 国产亚洲一区| 亚洲 欧洲 日韩| 激情视频一区二区三区| 久久综合九色综合88i| 麻豆久久精品| 97超碰人人爽| 国产99久久久久久免费看农村| 伦理片一区二区| 久久久国际精品| 国产精品成人69xxx免费视频| 亚洲激情图片qvod| 亚洲欧美精品一区二区三区| 欧美在线观看18| 国内精品久久久久久久久久久 | 亚洲福利电影| 成人免费视频久久| 国产综合一区二区| 国产一级免费片| 欧美激情资源网| 青青草在线观看视频| 色88888久久久久久影院按摩| 怡春院在线视频| 亚洲国产成人av在线| 大地资源中文在线观看免费版| 久热在线中文字幕色999舞| www.九色在线| 成人性生交大片免费看视频直播| 国产日韩三级| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 欧美日韩理论| 中文字幕一区二区三区四区在线视频 | 日韩精品电影网| av在线免费观看网站| 欧美激情国产精品| 国产福利一区二区三区在线播放| 91美女福利视频高清| 少妇精品导航| 欧美 亚洲 视频| 日韩成人免费电影| v天堂中文在线| 最新热久久免费视频| 国产黄色免费观看| 日韩视频一区二区在线观看| 香蕉视频黄色片| 色综合天天综合网国产成人网| 亚洲www啪成人一区二区| 国产精品视频免费一区| 国产精品videosex性欧美| 国产黄色特级片| jvid福利写真一区二区三区| 国产天堂av在线| 欧美在线看片a免费观看| 少妇喷水在线观看| 九九视频这里只有精品| 国产亚洲精品精品国产亚洲综合| 久久国产精品99久久久久久丝袜 | 欧美激情亚洲国产| 欧美高清免费| 日韩精品一线二线三线| 99re国产精品| 久久性爱视频网站| 亚洲精品网站在线观看| 91成人一区二区三区| 在线观看视频99| 日韩三区在线| 日韩hmxxxx| 天堂蜜桃91精品| 一区二区不卡免费视频| 亚洲成人激情自拍| 亚洲爱爱综合网| 欧美高清在线视频观看不卡| 精品一区二区三区中文字幕视频 | 在线日韩欧美| 韩国三级在线看| 亚洲最新视频在线播放| av在线亚洲天堂| 欧美—级高清免费播放| 免费观看亚洲天堂| 久久久无码中文字幕久...| 国产一区福利在线| av激情在线观看| 日韩一区二区三区免费观看| 二区三区在线观看| 91传媒视频在线观看| 欧美一区二区| 免费黄色a级片| 亚洲成av人片一区二区梦乃| 天天色天天操天天射| 性色av一区二区三区| 日本欧美高清| 欧美激情国产精品日韩| 国产日韩欧美激情| 中文字幕在线观看视频一区| 日韩亚洲一区二区| 国产剧情一区二区在线观看| 最近免费观看高清韩国日本大全| 国产精品自拍网站| 精品无码人妻一区二区三| 精品99一区二区| 欧美成人免费电影| 亚洲一区二区免费视频软件合集| 久久99久久久欧美国产| 成熟的女同志hd| 亚洲黄色有码视频| 欧美影视资讯| 香蕉视频免费版| 成人小视频在线| 久久久久女人精品毛片九一| 国产一区二区精品丝袜| 国产激情综合| 91好吊色国产欧美日韩在线| 国产视频一区在线观看| 国产精品无码久久久久成人app| 欧美肥臀大乳一区二区免费视频| 麻豆成人入口| 污污网站免费看| 一区二区三区视频在线看| 五月天久久久久久| 国产乱肥老妇国产一区二| 国内精品美女在线观看| 这里只有久久精品| 666欧美在线视频| 看黄在线观看| 2021狠狠干| 久久久午夜电影| 国产成人精品一区二三区四区五区| 午夜精品一区二区三区在线视频| 国产一区二区欧美| 国产精品熟妇一区二区三区四区| 欧美性猛交xxxx| 怡红院在线播放| 日韩亚洲欧美精品| 成人激情综合网站| 国产喷水吹潮视频www| 人人澡人人澡人人看欧美| 中文字幕亚洲精品乱码|