日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

ABP入门系列(16)——通过webapi与系统进行交互

發布時間:2023/12/10 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABP入门系列(16)——通过webapi与系统进行交互 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 引言

上一節我們講解了如何創建微信公眾號模塊,這一節我們就繼續跟進,來講一講公眾號模塊如何與系統進行交互。
微信公眾號模塊作為一個獨立的web模塊部署,要想與現有的【任務清單】進行交互,我們要想明白以下幾個問題:

  • 如何進行交互?
    ABP模板項目中默認創建了webapi項目,其動態webapi技術允許我們直接訪問appservice作為webapi而不用在webapi層編寫額外的代碼。所以,自然而然我們要通過webapi與系統進行交互。
  • 通過webapi與系統進行交互,如何確保安全?
    我們知道暴露的webapi如果不加以授權控制,就如同在大街上裸奔。所以在訪問webapi時,我們需要通過身份認證來確保安全訪問。
  • 都有哪幾種身份認證方式?
    第一種就是大家熟知的cookie認證方式;
    第二種就是token認證方式:在訪問webapi之前,先要向目標系統申請令牌(token),申請到令牌后,再使用令牌訪問webapi。Abp默認提供了這種方式;
    第三種是基于OAuth2.0的token認證方式:OAuth2.0是什么玩意?建議先看看OAuth2.0 知多少以便我們后續內容的展開。OAuth2.0認證方式彌補了Abp自帶token認證的短板,即無法進行token刷新。
  • 基于這一節,我完善了一個demo,大家可以直接訪問http://shengjietest.azurewebsites.net/進行體驗。

    demo

    下面我們就以【通過webapi請求用戶列表】為例看一看三種認證方式的具體實現。

    2. Cookie認證方式

    Cookie認證方式的原理就是:在訪問webapi之前,通過登錄目標系統建立連接,將cookie寫入本地。下一次訪問webapi的時候攜帶cookie信息就可以完成認證。

    2.1. 登錄目標系統

    這一步簡單,我們僅需提供用戶名密碼,Post一個登錄請求即可。
    我們在微信模塊中創建一個WeixinController:

    ?

    public class WeixinController : Controller {private readonly IAbpWebApiClient _abpWebApiClient;private string baseUrl = "http://shengjie.azurewebsites.net/";private string loginUrl = "/account/login";private string webapiUrl = "/api/services/app/User/GetUsers";private string abpTokenUrl = "/api/Account/Authenticate";private string oAuthTokenUrl = "/oauth/token";private string user = "admin";private string pwd = "123qwe";public WeixinController(){_abpWebApiClient = new AbpWebApiClient();} }

    其中IAbpWebApiClient是對HttpClient的封裝,用于發送 HTTP 請求和接收HTTP 響應。

    下面添加CookieBasedAuth方法,來完成登錄認證,代碼如下:

    ?

    public async Task CookieBasedAuth() {Uri uri = new Uri(baseUrl + loginUrl);var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.None, UseCookies = true };using (var client = new HttpClient(handler)){client.BaseAddress = uri;client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));var content = new FormUrlEncodedContent(new Dictionary<string, string>(){{"TenancyName", "Default"},{"UsernameOrEmailAddress", user},{"Password", pwd }});var result = await client.PostAsync(uri, content);string loginResult = await result.Content.ReadAsStringAsync();var getCookies = handler.CookieContainer.GetCookies(uri);foreach (Cookie cookie in getCookies){_abpWebApiClient.Cookies.Add(cookie);}} }

    這段代碼中有幾個點需要注意:

  • 指定HttpClientHandler屬性UseCookie = true,使用Cookie;
  • client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));用來指定接受的返回值;
  • 使用FormUrlEncodedContent進行傳參;
  • 使用var getCookies = handler.CookieContainer.GetCookies(uri);獲取返回的Cookie,并添加到_abpWebApiClient.Cookies的集合中,以便下次直接攜帶cookie信息訪問webapi。
  • 2.2. 攜帶cookie訪問webapi

    服務器返回的cookie信息在登錄成功后已經填充到_abpWebApiClient.Cookies中,我們只需post一個請求到目標api即可。

    ?

    public async Task<PartialViewResult> SendRequestBasedCookie() {await CookieBasedAuth();return await GetUserList(baseUrl + webapiUrl); }private async Task<PartialViewResult> GetUserList(string url) {try{var users = await _abpWebApiClient.PostAsync<ListResultDto<UserListDto>>(url);return PartialView("_UserListPartial", users.Items);}catch (Exception e){ViewBag.ErrorMessage = e.Message;}return null; }

    3. Token認證方式

    Abp默認提供的token認證方式,很簡單,我們僅需要post一個請求到/api/Account/Authenticate即可請求到token。然后使用token即可請求目標webapi。
    但這其中有一個問題就是,如果token過期,就必須使用用戶名密碼重寫申請token,體驗不好。

    3.1. 請求token

    ?

    public async Task<string> GetAbpToken() {var tokenResult = await _abpWebApiClient.PostAsync<string>(baseUrl + abpTokenUrl, new{TenancyName = "Default",UsernameOrEmailAddress = user,Password = pwd});this.Response.SetCookie(new HttpCookie("access_token", tokenResult));return tokenResult; }

    這段代碼中我們將請求到token直接寫入到cookie中。以便我們下次直接從cookie中取回token直接訪問webapi。

    3.2. 使用token訪問webapi

    從cookie中取回token,在請求頭中添加Authorization = Bearer token,即可。

    ?

    public async Task<PartialViewResult> SendRequest() {var token = Request.Cookies["access_token"]?.Value;//將token添加到請求頭_abpWebApiClient.RequestHeaders.Add(new NameValue("Authorization", "Bearer " + token));return await GetUserList(baseUrl + webapiUrl); }

    這里面需要注意的是,abp中配置app.UseOAuthBearerAuthentication(AccountController.OAuthBearerOptions);使用的是Bearer token,所以我們在請求weiapi時,要在請求頭中假如Authorization信息時,使用Bearer token的格式傳輸token信息(Bearer后有一個空格!)。

    4. OAuth2.0 Token認證方式

    OAuth2.0提供了token刷新機制,當服務器頒發的token過期后,我們可以直接通過refresh_token來申請token即可,不需要用戶再錄入用戶憑證申請token。

    4.1. Abp集成OAuth2.0

    在WebApi項目中的Api路徑下創建Providers文件夾,添加SimpleAuthorizationServerProvider和SimpleRefreshTokenProvider類。
    其中SimpleAuthorizationServerProvider用來驗證客戶端的用戶名和密碼來頒發token;SimpleRefreshTokenProvider用來刷新token。

    ?

    public class SimpleAuthorizationServerProvider : OAuthAuthorizationServerProvider, ITransientDependency {private readonly LogInManager _logInManager;public SimpleAuthorizationServerProvider(LogInManager logInManager){_logInManager = logInManager;}public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context){string clientId;string clientSecret;if (!context.TryGetBasicCredentials(out clientId, out clientSecret)){context.TryGetFormCredentials(out clientId, out clientSecret);}var isValidClient = string.CompareOrdinal(clientId, "app") == 0 &&string.CompareOrdinal(clientSecret, "app") == 0;if (isValidClient){context.OwinContext.Set("as:client_id", clientId);context.Validated(clientId);}else{context.SetError("invalid client");}return Task.FromResult<object>(null);}public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context){var tenantId = context.Request.Query["tenantId"];var result = await GetLoginResultAsync(context, context.UserName, context.Password, tenantId);if (result.Result == AbpLoginResultType.Success){//var claimsIdentity = result.Identity; var claimsIdentity = new ClaimsIdentity(result.Identity);claimsIdentity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));var ticket = new AuthenticationTicket(claimsIdentity, new AuthenticationProperties());context.Validated(ticket);}}public override Task GrantRefreshToken(OAuthGrantRefreshTokenContext context){var originalClient = context.OwinContext.Get<string>("as:client_id");var currentClient = context.ClientId;// enforce client binding of refresh tokenif (originalClient != currentClient){context.Rejected();return Task.FromResult<object>(null);}// chance to change authentication ticket for refresh token requestsvar newId = new ClaimsIdentity(context.Ticket.Identity);newId.AddClaim(new Claim("newClaim", "refreshToken"));var newTicket = new AuthenticationTicket(newId, context.Ticket.Properties);context.Validated(newTicket);return Task.FromResult<object>(null);}private async Task<AbpLoginResult<Tenant, User>> GetLoginResultAsync(OAuthGrantResourceOwnerCredentialsContext context,string usernameOrEmailAddress, string password, string tenancyName){var loginResult = await _logInManager.LoginAsync(usernameOrEmailAddress, password, tenancyName);switch (loginResult.Result){case AbpLoginResultType.Success:return loginResult;default:CreateExceptionForFailedLoginAttempt(context, loginResult.Result, usernameOrEmailAddress, tenancyName);//throw CreateExceptionForFailedLoginAttempt(context,loginResult.Result, usernameOrEmailAddress, tenancyName);return loginResult;}}private void CreateExceptionForFailedLoginAttempt(OAuthGrantResourceOwnerCredentialsContext context, AbpLoginResultType result, string usernameOrEmailAddress, string tenancyName){switch (result){case AbpLoginResultType.Success:throw new ApplicationException("Don't call this method with a success result!");case AbpLoginResultType.InvalidUserNameOrEmailAddress:case AbpLoginResultType.InvalidPassword:context.SetError(L("LoginFailed"), L("InvalidUserNameOrPassword"));break;// return new UserFriendlyException(("LoginFailed"), ("InvalidUserNameOrPassword"));case AbpLoginResultType.InvalidTenancyName:context.SetError(L("LoginFailed"), L("ThereIsNoTenantDefinedWithName", tenancyName));break;// return new UserFriendlyException(("LoginFailed"), string.Format("ThereIsNoTenantDefinedWithName{0}", tenancyName));case AbpLoginResultType.TenantIsNotActive:context.SetError(L("LoginFailed"), L("TenantIsNotActive", tenancyName));break;// return new UserFriendlyException(("LoginFailed"), string.Format("TenantIsNotActive {0}", tenancyName));case AbpLoginResultType.UserIsNotActive:context.SetError(L("LoginFailed"), L("UserIsNotActiveAndCanNotLogin", usernameOrEmailAddress));break;// return new UserFriendlyException(("LoginFailed"), string.Format("UserIsNotActiveAndCanNotLogin {0}", usernameOrEmailAddress));case AbpLoginResultType.UserEmailIsNotConfirmed:context.SetError(L("LoginFailed"), L("UserEmailIsNotConfirmedAndCanNotLogin"));break;// return new UserFriendlyException(("LoginFailed"), ("UserEmailIsNotConfirmedAndCanNotLogin"));//default: //Can not fall to default actually. But other result types can be added in the future and we may forget to handle it// //Logger.Warn("Unhandled login fail reason: " + result);// return new UserFriendlyException(("LoginFailed"));}}private static string L(string name, params object[] args){//return new LocalizedString(name);return IocManager.Instance.Resolve<ILocalizationService>().L(name, args);} }

    ?

    public class SimpleRefreshTokenProvider : IAuthenticationTokenProvider, ITransientDependency {private static ConcurrentDictionary<string, AuthenticationTicket> _refreshTokens = new ConcurrentDictionary<string, AuthenticationTicket>();public Task CreateAsync(AuthenticationTokenCreateContext context){var guid = Guid.NewGuid().ToString("N");// maybe only create a handle the first time, then re-use for same client// copy properties and set the desired lifetime of refresh tokenvar refreshTokenProperties = new AuthenticationProperties(context.Ticket.Properties.Dictionary){IssuedUtc = context.Ticket.Properties.IssuedUtc,ExpiresUtc = DateTime.UtcNow.AddYears(1)};var refreshTokenTicket = new AuthenticationTicket(context.Ticket.Identity, refreshTokenProperties);//_refreshTokens.TryAdd(guid, context.Ticket);_refreshTokens.TryAdd(guid, refreshTokenTicket);// consider storing only the hash of the handlecontext.SetToken(guid);return Task.FromResult<object>(null);}public Task ReceiveAsync(AuthenticationTokenReceiveContext context){AuthenticationTicket ticket;if (_refreshTokens.TryRemove(context.Token, out ticket)){context.SetTicket(ticket);}return Task.FromResult<object>(null);}public void Create(AuthenticationTokenCreateContext context){throw new NotImplementedException();}public void Receive(AuthenticationTokenReceiveContext context){throw new NotImplementedException();} }

    以上兩段代碼我就不做過多解釋,請自行走讀。

    緊接著我們在Api目錄下創建OAuthOptions類用來配置OAuth認證。

    ?

    public class OAuthOptions {/// <summary>/// Gets or sets the server options./// </summary>/// <value>The server options.</value>private static OAuthAuthorizationServerOptions _serverOptions;/// <summary>/// Creates the server options./// </summary>/// <returns>OAuthAuthorizationServerOptions.</returns>public static OAuthAuthorizationServerOptions CreateServerOptions(){if (_serverOptions == null){var provider = IocManager.Instance.Resolve<SimpleAuthorizationServerProvider>();var refreshTokenProvider = IocManager.Instance.Resolve<SimpleRefreshTokenProvider>();_serverOptions = new OAuthAuthorizationServerOptions{TokenEndpointPath = new PathString("/oauth/token"),Provider = provider,RefreshTokenProvider = refreshTokenProvider,AccessTokenExpireTimeSpan = TimeSpan.FromSeconds(30),AllowInsecureHttp = true};}return _serverOptions;} }

    從中我們可以看出,主要配置了以下幾個屬性:

    • TokenEndpointPath :用來指定請求token的路由;
    • Provider:用來指定創建token的Provider;
    • RefreshTokenProvider:用來指定刷新token的Provider;
    • AccessTokenExpireTimeSpan :用來指定token過期時間,這里我們指定了30s,是為了demo 如何刷新token。
    • AllowInsecureHttp:用來指定是否允許http連接。

    創建上面三個類之后,我們需要回到Web項目的Startup類中,配置使用集成的OAuth2.0,代碼如下:

    ?

    public void Configuration(IAppBuilder app) {//第一步:配置跨域訪問app.UseCors(CorsOptions.AllowAll);app.UseOAuthBearerAuthentication(AccountController.OAuthBearerOptions);//第二步:使用OAuth密碼認證模式app.UseOAuthAuthorizationServer(OAuthOptions.CreateServerOptions());//第三步:使用Abpapp.UseAbp();//省略其他代碼 }

    其中配置跨越訪問時,我們需要安裝Microsoft.Owin.CorsNuget包。

    至此,Abp集成OAuth的工作完成了。

    4.2. 申請OAuth token

    我們在Abp集成OAuth配置的申請token的路由是/oauth/token,所以我們將用戶憑證post到這個路由即可申請token:

    ?

    public async Task<string> GetOAuth2Token() {Uri uri = new Uri(baseUrl + oAuthTokenUrl);var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.None };using (var client = new HttpClient(handler)){client.BaseAddress = uri;client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));var content = new FormUrlEncodedContent(new Dictionary<string, string>(){{"grant_type", "password"},{"username", user },{"password", pwd },{"client_id", "app" },{"client_secret", "app"},});//獲取token保存到cookie,并設置token的過期日期 var result = await client.PostAsync(uri, content);string tokenResult = await result.Content.ReadAsStringAsync();var tokenObj = (JObject)JsonConvert.DeserializeObject(tokenResult);string token = tokenObj["access_token"].ToString();string refreshToken = tokenObj["refresh_token"].ToString();long expires = Convert.ToInt64(tokenObj["expires_in"]);this.Response.SetCookie(new HttpCookie("access_token", token));this.Response.SetCookie(new HttpCookie("refresh_token", refreshToken));this.Response.Cookies["access_token"].Expires = Clock.Now.AddSeconds(expires);return tokenResult;} }

    在這段代碼中我們指定的grant_type = password,這說明我們使用的是OAuth提供的密碼認證模式。其中{"client_id", "app" }, {"client_secret", "app"}(搞過微信公眾號開發的應該對這個很熟悉)用來指定客戶端的身份和密鑰,這邊我們直接寫死。
    通過OAuth的請求的token主要包含四部分:

    • token:令牌
    • refreshtoken:刷新令牌
    • expires_in:token有效期
    • token_type:令牌類型,我們這里是Bearer

    為了演示方便,我們直接把token信息直接寫入到cookie中,實際項目中建議寫入數據庫。

    4.3. 刷新token

    如果我們的token過期了怎么辦,咱們可以用refresh_token來重新獲取token。

    ?

    public async Task<string> GetOAuth2TokenByRefreshToken(string refreshToken) {Uri uri = new Uri(baseUrl + oAuthTokenUrl);var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.None, UseCookies = true };using (var client = new HttpClient(handler)){client.BaseAddress = uri;client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));var content = new FormUrlEncodedContent(new Dictionary<string, string>(){{"grant_type", "refresh_token"},{"refresh_token", refreshToken},{"client_id", "app" },{"client_secret", "app"},});//獲取token保存到cookie,并設置token的過期日期 var result = await client.PostAsync(uri, content);string tokenResult = await result.Content.ReadAsStringAsync();var tokenObj = (JObject)JsonConvert.DeserializeObject(tokenResult);string token = tokenObj["access_token"].ToString();string newRefreshToken = tokenObj["refresh_token"].ToString();long expires = Convert.ToInt64(tokenObj["expires_in"]);this.Response.SetCookie(new HttpCookie("access_token", token));this.Response.SetCookie(new HttpCookie("refresh_token", newRefreshToken));this.Response.Cookies["access_token"].Expires = Clock.Now.AddSeconds(expires);return tokenResult;} }

    這段代碼較直接使用用戶名密碼申請token的差別主要在參數上,{"grant_type", "refresh_token"},{"refresh_token", refreshToken}。

    4.4. 使用token訪問webapi

    有了token,訪問webapi就很簡單了。

    ?

    public async Task<ActionResult> SendRequestWithOAuth2Token() {var token = Request.Cookies["access_token"]?.Value;if (token == null){//throw new Exception("token已過期");string refreshToken = Request.Cookies["refresh_token"].Value;var tokenResult = await GetOAuth2TokenByRefreshToken(refreshToken);var tokenObj = (JObject)JsonConvert.DeserializeObject(tokenResult);token = tokenObj["access_token"].ToString();}_abpWebApiClient.RequestHeaders.Add(new NameValue("Authorization", "Bearer " + token));return await GetUserList(baseUrl + webapiUrl); }

    這段代碼中,我們首先從cookie中取回access_token,若access_token為空說明token過期,我們就從cookie中取回refresh_token重新申請token。然后構造一個Authorization將token信息添加到請求頭即可訪問目標webapi。

    5. 總結

    本文介紹了三種不同的認證方式進行訪問webapi,并舉例說明。文章不可能面面俱到,省略了部分代碼,請直接參考源碼。若有紕漏之處也歡迎大家留言指正。

    本文主要參考自以下文章:
    使用OAuth打造webapi認證服務供自己的客戶端使用
    ABP中使用OAuth2(Resource Owner Password Credentials Grant模式)
    Token Based Authentication using ASP.NET Web API 2, Owin, and Identity



    作者:圣杰
    鏈接:https://www.jianshu.com/p/d14733432dc2
    來源:簡書
    著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

    總結

    以上是生活随笔為你收集整理的ABP入门系列(16)——通过webapi与系统进行交互的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    色吊丝在线永久观看最新版本 | 精品国产一区二区在线 | 天天综合人人 | 国产成人精品一区二 | 免费看黄的视频 | 日韩欧美一区二区三区在线 | av不卡免费看 | 免费看三级网站 | 成人av动漫在线 | 欧美日韩免费看 | 日韩字幕 | sesese图片| 日韩一级电影在线 | 国产 亚洲 欧美 在线 | 99视频在线看 | 中文字幕免费观看视频 | 一级免费片 | 日本性生活免费看 | av成人在线看 | 久久高清免费视频 | 在线观看免费福利 | 天天操导航 | 欧美精品久久久久久久久久久 | 在线高清av| 人人添人人澡人人澡人人人爽 | 国产精品九九热 | 日韩免费精品 | 一区二区三区四区五区在线视频 | 天天操操操操操操 | 精品视频在线看 | 怡春院av| 免费观看性生活大片3 | 日韩视频免费观看高清 | 91爱爱网址| 97在线观看| av中文字幕免费在线观看 | 91av欧美| 日韩中文字幕在线不卡 | 西西444www大胆高清图片 | 久久免费视频99 | 精品国产123 | 午夜av大片 | 亚洲网站在线 | 中文视频在线 | 深爱婷婷网 | 日韩免费视频线观看 | 日韩欧美在线一区 | 日韩欧美在线不卡 | 大型av综合网站 | 久久国产高清视频 | 欧美特一级片 | 激情九九 | 久久免费的精品国产v∧ | 色夜影院 | www.色午夜,com | 亚洲午夜电影网 | 免费观看91视频 | 日韩最新中文字幕 | 成年人在线电影 | 国产福利在线免费观看 | 国产精品成人a免费观看 | 91片网| 超碰97在线人人 | 天天色成人网 | 免费在线观看国产精品 | 国际精品久久 | 国产一区二区三区视频在线 | 亚州精品天堂中文字幕 | 国色天香在线观看 | 人人爽爽人人 | 色综合狠狠干 | www.久久成人 | 日韩特级片 | 天天色天天操天天爽 | 国产精品一区二区免费 | 99久久精品网 | www在线观看视频 | 亚洲精品在线视频播放 | 99久久精品免费看国产四区 | 在线小视频你懂的 | 婷婷色中文| 欧美日韩国产二区三区 | 又黄又刺激视频 | 日韩美一区二区三区 | 免费亚洲视频在线观看 | 精品视频在线视频 | 婷婷丁香激情网 | 久久久久久国产精品免费 | 97电影在线 | 久久久午夜精品理论片中文字幕 | 久久综合久久久 | 99精品偷拍视频一区二区三区 | 欧美性生活免费看 | 亚洲欧洲美洲av | 久草| 欧美另类交人妖 | 国产精品一区二区三区在线 | 91色亚洲 | 一区二区不卡高清 | 午夜影院一区 | 国产网站在线免费观看 | 久久国产精品二国产精品中国洋人 | av在线播放免费 | 久久人人97超碰精品888 | 成人av影视在线 | 正在播放五月婷婷狠狠干 | 六月丁香在线视频 | 中文字幕日韩有码 | 天天操夜夜爱 | 色多多污污在线观看 | 日韩色爱 | 久久综合五月天 | 国产日产精品一区二区三区四区的观看方式 | 婷色在线| 欧美日韩亚洲国产一区 | 久久久久久久久久亚洲精品 | 成人精品影视 | avav片 | 色在线免费视频 | 精品日韩在线一区 | 国产精品美女久久久免费 | 免费高清在线一区 | 国产美女在线观看 | 97在线观看视频国产 | 国产精品免费视频观看 | 国产精品久久久久久久午夜片 | 欧美日韩二三区 | 国产99一区视频免费 | 日本久久中文 | 日韩精品免费在线观看 | 一区二区三区四区五区在线视频 | 成人一级在线观看 | 国产中文在线字幕 | 亚洲精品在 | 97在线观看视频国产 | 久久久久久看片 | 在线免费观看国产 | 在线黄色国产 | 精品影院一区二区久久久 | 国产精品久久久久久久久久久久午夜 | 久99精品| 激情丁香5月 | 色婷婷狠狠五月综合天色拍 | 久久久久久久久久久精 | 欧美日韩国产一二三区 | 国产午夜视频在线观看 | 天天综合入口 | 中文字幕在线观看三区 | 成人小视频在线观看免费 | 91精品日韩 | 亚洲老妇xxxxxx | 国产高清免费av | 久草在线免费资源 | 开心激情五月网 | 国产精品福利无圣光在线一区 | 国产九九热 | 日韩精品免费在线观看视频 | 999久久a精品合区久久久 | 婷婷色狠狠| 国产成人久久久77777 | 亚洲免费观看视频 | 色婷婷影视 | 免费看一级黄色 | 日日干干夜夜 | 91精品在线视频 | 西西www4444大胆视频 | 成人羞羞免费 | 一区二区三区福利 | 波多野结衣电影一区二区 | 伊人成人久久 | 99999精品| 久久国产亚洲视频 | 涩涩资源网 | 日韩在线免费高清视频 | 天天干天天做天天爱 | 亚洲在线观看av | 欧美日韩国产免费视频 | 日狠狠 | 亚洲一区二区视频在线 | 久久精品一二三 | 狠狠干五月天 | av黄色在线 | 97av免费视频 | 91视频在线免费下载 | 国产经典 欧美精品 | 国产系列精品av | 色综合天天综合在线视频 | 国产日产精品一区二区三区四区 | 久久久国产精品人人片99精片欧美一 | 97超碰国产在线 | 国产理论一区二区三区 | 色偷偷中文字幕 | 美女视频黄免费的久久 | 亚洲精品午夜久久久久久久久久久 | 97国产精品一区二区 | 成人精品电影 | 91.精品高清在线观看 | 91福利区一区二区三区 | 中文字幕日韩高清 | 久久精品1区 | 91你懂的| 午夜国产在线 | 一区二区三区在线免费观看 | 美女视频免费一区二区 | 久久久久影视 | 久久国产视频网 | 欧美一区日韩一区 | 免费一级毛毛片 | 国产精品综合久久 | 国产精品成久久久久 | 久久av中文字幕片 | 一区二区三区四区不卡 | 婷婷在线免费观看 | 日日夜夜国产 | 夜添久久精品亚洲国产精品 | 天天草夜夜 | 久久精品视频国产 | 综合网伊人| 麻豆91小视频 | 天天天天天天天操 | 欧美五月婷婷 | 高清中文字幕 | 久久精品一二三 | 天天操天天干天天操天天干 | 国产黄色片在线免费观看 | 亚洲成年人免费网站 | 激情五月婷婷激情 | 欧美精品一区二区免费 | 国内精品久久久久影院一蜜桃 | 色午夜影院 | 夜夜爽夜夜操 | 91亚洲精品久久久蜜桃 | 夜夜躁狠狠燥 | 国产高清av在线播放 | 五月天综合网站 | wwxxx日本| 欧美激情xxxx | 久久综合网色—综合色88 | 在线观看免费91 | 亚洲专区 国产精品 | 日韩免费视频线观看 | 天天摸天天干天天操天天射 | 午夜免费福利片 | 超碰久热 | 免费在线视频一区二区 | 99精品在线看 | 成人影视片| 操操操日日 | 天天添夜夜操 | 中文字幕美女免费在线 | 国产精品在线看 | 五月激情在线 | 五月婷婷中文字幕 | 免费看麻豆| 天天干天天拍天天操天天拍 | 中文字幕日韩电影 | 日韩美女av在线 | 久久99精品波多结衣一区 | 国产视 | 黄色1级毛片 | 综合激情网 | av电影不卡在线 | 伊人久操 | 精品一区欧美 | 国产精品夜夜夜一区二区三区尤 | 97电影在线看视频 | 成人午夜久久 | 日韩黄视频 | 狠狠色丁香久久婷婷综合五月 | 午夜体验区 | 亚洲在线视频播放 | 视频在线99 | 日韩在线观看你懂得 | 欧美最新另类人妖 | 欧美日韩免费一区 | 又黄又爽又湿又无遮挡的在线视频 | 中文字幕在线观看完整版 | 91探花国产综合在线精品 | 久草网在线 | 91av蜜桃| 人人天天夜夜 | 西西大胆免费视频 | 国产精品女视频 | 欧美与欧洲交xxxx免费观看 | 激情综合网婷婷 | 亚洲国产中文字幕在线视频综合 | 狠狠的日 | 亚洲欧美视频 | 在线视频日韩 | 成人在线免费视频观看 | 青青河边草免费直播 | 麻豆精品视频在线观看免费 | 亚洲精品1234区 | 香蕉在线视频播放网站 | 狠狠操夜夜 | www.久久久| 一区电影 | 深夜国产福利 | 久久国产女人 | 久久久久成人精品免费播放动漫 | 国产成人av免费在线观看 | 日韩美女黄色片 | 日韩1级片 | 夜夜高潮夜夜爽国产伦精品 | 在线观看亚洲国产精品 | 国产一卡久久电影永久 | 一区三区视频在线观看 | 免费韩国av | 在线观看一区 | 天堂av在线网站 | 五月天色中色 | 亚洲精品中文在线资源 | 久久网站免费 | 成人久久视频 | 亚洲精品观看 | 中文字幕视频观看 | 在线 欧美 日韩 | 国产啊v在线 | 久久精品久久久久久久 | 欧美一区成人 | 波多野结衣一区 | 中文字幕一区二区三区乱码在线 | 欧美一级黄色视屏 | 日本精品久久久久中文字幕5 | 精品一区二区三区香蕉蜜桃 | 久久久精品成人 | 日批视频国产 | 国产美女永久免费 | 色婷婷精品大在线视频 | 亚洲午夜不卡 | 五月婷婷六月丁香激情 | 午夜精品婷婷 | 日韩另类在线 | 久久久久久久久久久网站 | 91视频中文字幕 | 国产高清视频免费最新在线 | 欧美成年人在线观看 | 日韩免费观看一区二区三区 | 国产精品黄色影片导航在线观看 | 国产亚洲免费观看 | 深夜免费福利 | 日日夜夜爱 | 日韩欧美在线不卡 | 天天视频色版 | 日韩成人免费观看 | 超碰在线94 | av黄色成人 | 国产中文字幕视频在线 | 日韩成人精品 | 欧美成人在线免费 | av免费看在线 | 日本女人的性生活视频 | www五月 | 在线免费亚洲 | 日韩二区三区在线观看 | 天天狠狠干| 日本中文不卡 | 麻花天美星空视频 | 日本精品在线看 | 在线播放亚洲 | av免费电影在线观看 | 四虎影视成人永久免费观看视频 | 九九综合久久 | 国产麻豆精品久久一二三 | 国产精品完整版 | 国产精品二区三区 | 亚洲国产精品va在线 | 色香com. | 亚洲精品9 | 国产精品不卡在线观看 | 最新日本中文字幕 | 黄色小说在线观看视频 | 亚洲a资源 | 久久久精品高清 | 免费久久99精品国产 | 国产精品麻豆欧美日韩ww | www.色综合.com | 欧美最猛性xxx | 国产 日韩 欧美 中文 在线播放 | 91豆花在线| 一区视频在线 | 国内精品视频在线 | 久久在线看 | 毛片黄色一级 | 久久天天操 | 91九色porn在线资源 | 精品久久久久久综合日本 | 免费av大全 | 久久噜噜少妇网站 | 免费av 在线 | 日韩精品无码一区二区三区 | 玖玖精品视频 | 亚洲激精日韩激精欧美精品 | 免费观看久久久 | 国产区精品区 | 永久免费视频国产 | 成人欧美一区二区三区在线观看 | 久久亚洲欧美日韩精品专区 | 欧美在线视频精品 | 亚洲国产免费看 | 日韩中文在线电影 | 中文字幕资源站 | 久久国产精品久久精品国产演员表 | 在线亚洲日本 | 九色精品免费永久在线 | 婷婷丁香在线观看 | 91亚洲国产成人 | 六月丁香激情网 | 超碰97在线资源站 | 中文在线字幕免费观看 | 在线免费看黄网站 | 91完整版在线观看 | 九九综合九九 | 国产视频99 | 99免费在线播放99久久免费 | 欧美国产不卡 | 91av视频在线播放 | 亚在线播放中文视频 | 欧美国产精品一区二区 | 精品亚洲网 | 日本中文字幕在线看 | 欧美在线不卡一区 | 91中文字幕网 | 国产视频在 | 国产又粗又长又硬免费视频 | 在线视频国产区 | 天天天在线综合网 | 99热官网| 蜜臀久久99静品久久久久久 | 97av精品| 国产成本人视频在线观看 | 亚洲午夜久久久久久久久 | 黄色午夜网站 | 欧美日本一二三 | 国产精品久久久久久久久久三级 | 国产又黄又猛又粗 | 日韩精品在线观看av | 69av视频在线观看 | 亚洲国产欧美在线看片xxoo | 九九热免费在线观看 | 国产视频一级 | 特级毛片在线观看 | 成人av在线直播 | 国内精品久久久久久 | 另类老妇性bbwbbw高清 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 欧美日韩中 | 久久久免费在线观看 | 911久久香蕉国产线看观看 | 人人干在线观看 | 国产精品久久久久一区二区三区 | 欧美乱码精品一区二区 | 超碰人在线 | 久久人人爽人人片 | 日韩免费专区 | 99精品国产福利在线观看免费 | 国内精品视频久久 | 亚洲精品综合久久 | 日韩电影中文,亚洲精品乱码 | 一区二区视频欧美 | 精品国产乱码久久久久久1区2匹 | 99视频在线精品国自产拍免费观看 | 蜜臀久久99精品久久久无需会员 | 欧美日韩精品二区第二页 | 日韩在线观看视频一区二区三区 | 欧美日韩免费观看一区=区三区 | 婷婷六月激情 | 国内精品国产三级国产aⅴ久 | 欧美成人xxxxx | 97久久久免费福利网址 | 亚洲欧美激情精品一区二区 | 成人a毛片 | 亚洲精品tv久久久久久久久久 | 99草视频 | 日韩欧美精品一区二区三区经典 | 超碰免费97 | 久久久久免费 | 亚洲在线免费视频 | 成人免费观看网址 | 欧美国产日韩一区二区三区 | 丁香六月婷婷 | 久久人操 | 亚洲精品中文在线 | 日韩精品一区二区在线视频 | 91激情| av电影亚洲 | 免费看三级黄色片 | 狠狠色丁香婷婷综合欧美 | 亚洲第一区精品 | 在线观看免费国产小视频 | 五月婷婷在线观看视频 | 免费在线观看a v | 久久精品二区 | 国产黄色美女 | 国产91精品一区二区麻豆亚洲 | 天天干天天操天天射 | 国产精品久久综合 | 久久精品久久精品久久39 | 国产成人福利在线观看 | 精品久久一区二区三区 | 日本成址在线观看 | 福利视频区 | 欧美91精品久久久久国产性生爱 | 日本中文一区二区 | 中文字幕国产一区 | 麻豆免费在线播放 | 久久96国产精品久久99软件 | 在线播放 日韩专区 | 成人一级电影在线观看 | 日韩免费二区 | 99久久精品免费看国产免费软件 | 黄色av网站在线免费观看 | 日本精品视频免费 | 婷香五月 | 久热免费在线 | 亚洲综合色激情五月 | 手机成人av在线 | 波多野结衣视频一区二区三区 | 日韩精品中文字幕av | 激情av资源 | 精品一区久久 | 最新av电影网站 | 精品主播网红福利资源观看 | 欧美日本中文字幕 | 91精品国产91久久久久福利 | aaa毛片视频| 成人小电影在线看 | 欧美一级免费在线 | 国产黄色片免费在线观看 | 久久人人爽人人爽人人片av软件 | 免费高清看电视网站 | 91在线最新 | 在线看片中文字幕 | 92中文资源在线 | .精品久久久麻豆国产精品 亚洲va欧美 | 日韩精品免费一区二区 | 欧美一二三在线 | 97电影院网| www91在线观看 | www.夜夜爱 | 一级黄色电影网站 | 人人射人人 | 黄色avwww | 亚洲综合日韩在线 | 中文字幕视频网站 | 久久久久久久网 | 国产一区二区不卡视频 | 日韩一区精品 | 国产xx视频| 成人h动漫在线看 | 久久视频中文字幕 | 在线电影 你懂得 | 精品久久久久久综合日本 | 欧美综合在线视频 | 一性一交视频 | 国产韩国日本高清视频 | 国产美女搞久久 | 亚洲精品国产麻豆 | 国产91免费在线观看 | 免费h视频 | 一级黄色大片在线观看 | 天天射天天射天天射 | 国产精品视频专区 | 欧美日韩国产高清视频 | 国产自制av | 国产精品久久网站 | 天海翼一区二区三区免费 | 日日日日干 | 欧美久久久久久久久 | 国产精品99久久久久久有的能看 | 欧美色图一区 | 久久综合久久综合久久 | 激情丁香综合 | 黄色毛片一级 | 97超碰在线视 | 国产 日韩 中文字幕 | 日韩乱码中文字幕 | 久久国产精品视频免费看 | 欧美另类色图 | 不卡的av| 国产精品久久免费看 | 国产精品麻豆三级一区视频 | 视频在线播放国产 | 久久在线电影 | av在线之家电影网站 | a在线免费观看视频 | 日本久久综合视频 | 久久久久成人精品免费播放动漫 | 黄色录像av | 成人午夜电影网 | 在线看片中文字幕 | 国产精品一区二区av | 精品国产亚洲一区二区麻豆 | 久久伦理网 | 成人a在线观看 | 免费在线黄色av | 2019天天干天天色 | 韩国一区二区三区在线观看 | 色婷婷国产 | 日韩 精品 一区 国产 麻豆 | av在线h | 99热这里只有精品免费 | 久久国产网站 | 99热播精品| 国产视频中文字幕在线观看 | 国产馆在线播放 | 在线电影a| 中文字幕精品一区久久久久 | 国产成a人亚洲精v品在线观看 | 国产一区自拍视频 | 亚洲黄色免费 | 免费成人av电影 | 国产色视频网站 | 高清av中文在线字幕观看1 | 久久久精品高清 | 日韩剧情| 91麻豆精品国产自产在线游戏 | 久久人人爽爽人人爽人人片av | 国产精品高清免费在线观看 | 99久久er热在这里只有精品66 | 91亚洲国产 | 7777xxxx| 久久最新网址 | 五月天综合在线 | 99久热| 精品视频免费观看 | 一区二区三区四区在线 | 在线精品在线 | 中文字幕在线视频第一页 | 五月天色婷婷丁香 | 久久亚洲私人国产精品va | 久久精品电影网 | 69视频永久免费观看 | 中文字幕亚洲精品在线观看 | 免费a网站 | a久久免费视频 | 国产精品123 | 9热精品 | 在线视频中文字幕一区 | 亚洲黄色成人 | 中文字幕在线久一本久 | 黄色网址av| 亚洲精品视频在线观看免费视频 | 综合伊人av | 国产91学生 | 亚洲a色 | 99热官网 | 97超在线 | 国产裸体视频网站 | 欧美精品一区二区性色 | 国产黄色网| 亚洲mv大片欧洲mv大片免费 | 97久久精品午夜一区二区 | 国产不卡在线观看视频 | 天天插天天干天天操 | 精品久久综合 | 一级片黄色片网站 | 国产精品久久久久一区二区 | 久久这里只有精品9 | 在线观看黄av | 精品久久网站 | 国产一区私人高清影院 | 亚洲理论影院 | 婷婷开心久久网 | 在线观看日韩视频 | 欧美亚洲精品一区 | 日日操天天操狠狠操 | 午夜在线免费观看 | 97视频亚洲 | 四虎在线观看视频 | 久久国产精品一区二区三区四区 | 97夜夜澡人人爽人人免费 | 人人爽人人做 | 免费看毛片网站 | 欧美精品久久久久久久久久白贞 | 中文不卡视频 | av免费在线网 | 午夜精品久久久久久久久久久久久久 | 成年人电影免费在线观看 | 91精品国产99久久久久 | 麻豆国产视频下载 | 国产免费一区二区三区最新6 | 久久9999久久免费精品国产 | 人人射人人爱 | 国产中文字幕第一页 | 亚洲精品网页 | 天天操天天干天天操天天干 | 亚洲欧美偷拍另类 | 国产一级电影 | 99中文字幕| 久久精品国产亚洲精品2020 | 成年免费在线视频 | 黄色软件在线观看免费 | 丁香婷婷激情国产高清秒播 | 国产精品午夜在线观看 | 超碰在线97观看 | 好看的国产精品视频 | 中文字幕欧美日韩va免费视频 | 亚洲午夜精品电影 | 波多野结衣小视频 | 在线观看中文字幕一区二区 | 久草在线资源网 | 国产专区精品视频 | 久久国产精彩视频 | 99久久精品无免国产免费 | 美女网站黄在线观看 | 精品a视频 | 日韩午夜精品福利 | av免费在线网站 | 亚洲精品自拍 | 性色在线视频 | 久久经典国产 | 激情电影在线观看 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 天天操天天干天天干 | 亚洲精品国产自产拍在线观看 | 久久久这里有精品 | 久久久高清 | 久久久久久久99精品免费观看 | freejavvideo日本免费 | 在线视频99 | 91视频国产高清 | 国产精品欧美日韩在线观看 | 2021国产视频| 午夜精品久久久久久久久久久久 | av在线小说 | 中文字幕在线资源 | 人人澡视频 | 美女免费视频网站 | 九精品 | 最近字幕在线观看第一季 | 国产精品成人aaaaa网站 | 伊人黄 | 欧美性视频网站 | 最近中文字幕完整视频高清1 | 亚洲视屏一区 | 久久久麻豆视频 | 欧美色图亚洲图片 | 丁香色婷| 五月婷婷网站 | 国产免费xvideos视频入口 | 日韩视频图片 | 99久久精品国产一区 | 国产精品女人久久久久久 | 99精品网站| 国产精品久久 | 九九影视理伦片 | 日韩欧美一二三 | 国产精品久久二区 | 日韩在线资源 | 欧美一级视频一区 | 欧美性做爰猛烈叫床潮 | 成人av免费 | 成人毛片在线视频 | 国产999精品久久久 免费a网站 | 亚洲视频在线观看网站 | 国产精华国产精品 | 久久精品99 | 国产精品亚州 | 天天看天天干 | 在线观看国产91 | 99精品免费在线观看 | 丁香婷婷深情五月亚洲 | 日韩精品一区二区三区第95 | 美女视频久久 | av大片免费看 | 亚洲欧洲av在线 | 在线观看你懂的网站 | 性色av一区二区三区在线观看 | 超碰在线cao | 激情影院在线观看 | 五月婷婷丁香 | 色综合久久久 | 91色在线观看 | www.久久久.com | 天天射天天干天天插 | 国产精品一区欧美 | 久久人人97超碰com | 91最新视频 | 婷婷激情影院 | 91成人免费看 | 欧美日韩国产综合网 | 中文av一区二区 | 免费影视大全推荐 | 国产一区二区免费 | 亚洲精品久久久久久久不卡四虎 | 成人午夜久久 | 亚洲高清色综合 | 成人黄色小视频 | 一级电影免费在线观看 | 国产精品一区二区三区在线看 | 黄色小说网站在线 | 99视频在线 | 日韩欧美高清一区二区 | 日韩在线电影观看 | 91精品在线免费 | 日韩a在线 | 欧洲在线免费视频 | 天天操狠狠操网站 | 亚洲精品视频网站在线观看 | 黄色片亚洲 | 日韩毛片在线播放 | 超碰在线日韩 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩av一区二区三区在线观看 | 人人射人人爱 | 久久久久久久久久久网 | 中文字幕亚洲精品在线观看 | 999日韩| 色久网 | 欧美精品在线一区二区 | 日韩免费电影在线观看 | 夜添久久精品亚洲国产精品 | 毛片网免费 | 一区二区伦理电影 | 丁香五婷 | 日韩久久午夜一级啪啪 | 99久久夜色精品国产亚洲96 | 久久99婷婷 | 亚洲视频免费在线观看 | 天天干天天操天天射 | 欧美精品久久久久久久 | 亚洲三级黄色 | 国产在线观看免费 | 久久情侣偷拍 | 99在线热播精品免费99热 | 久久久精品国产一区二区电影四季 | 视频在线播放国产 | 成人丝袜 | 国产中文字幕亚洲 | 色国产精品一区在线观看 | 最新成人在线 | 探花视频在线版播放免费观看 | 国产高清不卡一区二区三区 | 精品国产亚洲一区二区麻豆 | 日日爱网站 | 日韩美女av在线 | 天天干一干 | 久久精品视频播放 | 美女网站免费福利视频 | 日日干日日| 欧美91精品久久久久国产性生爱 | 久久黄色网页 | 91视频免费视频 | 在线观看免费视频你懂的 | av久久在线 | 亚洲精品美女 | 丁香婷婷综合激情五月色 | 精品免费国产一区二区三区四区 | 视频在线观看99 | 国产日韩欧美在线观看 | 日韩精品电影在线播放 | 亚洲区另类春色综合小说校园片 | 97超碰免费在线观看 | 久久调教视频 | 久艹在线观看视频 | 国产精品欧美日韩 | 黄色大片日本 | 五月婷婷综合色拍 | 国产在线永久 | 色综合小说 | 欧美日韩视频一区二区三区 | 精品久久久久国产 | 成人一级视频在线观看 | 99久久精品日本一区二区免费 | 伊人手机在线 | 亚洲国产精品久久久久婷婷884 | 精品亚洲成人 | 99看视频在线观看 | 国产免费视频一区二区裸体 | 日韩中文字幕a | 一本之道乱码区 | 日韩中文字幕a | 97超级碰碰 | 欧美日本中文字幕 | 国产综合在线观看视频 | 国产视频亚洲视频 | 精品美女在线视频 | 国产在线精品福利 | 四虎免费av | 色综合亚洲精品激情狠狠 | 玖玖爱在线观看 | 日本中文字幕在线视频 | 激情婷婷亚洲 | 天天干天天干天天射 | 高清av免费看 | 国产福利av | 久久久国产精华液 | bbbb操bbbb| 91麻豆精品国产午夜天堂 | 国产精品va在线观看入 | 射射射综合网 | 91精品综合在线观看 | 欧美成人按摩 | 日韩视频中文字幕在线观看 | 中文字幕乱码电影 | 日韩视频专区 | 日本久久电影网 | 手机av在线不卡 | 人人爽人人爱 | 亚洲 欧美 综合 在线 精品 | 欧美一区二区三区特黄 | 欧美天堂久久 | 91精品一区二区三区久久久久久 | 国产亚洲视频在线免费观看 | 成人性生交大片免费看中文网站 | 天天做夜夜做 | 91高清视频在线 | 亚洲天堂网站 | 日韩av中文字幕在线 | 黄色在线免费观看网址 | 亚洲精品久久久久久久蜜桃 | 国产精品久久久久久久久久ktv | 亚洲高清av | 激情网站五月天 | 日韩欧美精品一区二区三区经典 | 人人射人人| 在线观看日本韩国电影 | 国内精品久久久久久久影视麻豆 | 成年人在线免费看视频 | 五月婷婷综合在线观看 | 日韩成人在线免费观看 | 97超碰人人澡 | 欧美色噜噜噜 | www九九热| 成人国产精品一区二区 | 精品国产一区二区三区久久 | 国产色在线视频 | 亚洲精品www久久久久久 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产在线观 | 亚洲激情p | 亚洲日韩中文字幕在线播放 | av电影中文 | 99精品黄色片免费大全 | 久久久 精品 | 99这里只有精品99 | 日韩一级黄色片 | 色九九视频| 日韩一级片大全 | 亚洲专区路线二 | 五月色综合 | 91久久国产综合精品女同国语 | 日韩精品久久久久久中文字幕8 | 俺要去色综合狠狠 | 天堂va在线高清一区 | 天天操夜夜想 | 97在线免费视频 | 青青看片| 亚洲精品系列 | 1024久久 | 日韩精品视频在线观看免费 | av一级久久 | 亚洲人成精品久久久久 | 亚洲成av人影片在线观看 | 成人av电影在线 | 精品久久久久亚洲 | 久草资源在线观看 | 国产一卡久久电影永久 | 狠狠狠狠狠狠 | 一级一片免费视频 | 国产免费一区二区三区最新6 | 久久精品女人毛片国产 | 国产一级免费在线观看 | 日韩av偷拍 | 日韩电影在线看 | 在线观看国产日韩 | 黄色美女免费网站 | 精品美女在线观看 | 日本少妇高清做爰视频 | 麻豆视频入口 | 91亚洲欧美激情 | 久一在线 | 日韩av免费在线看 | 久草男人天堂 | 久久1电影院 | 国产成人福利在线 | 久久久污 | 在线精品播放 | 日韩av手机在线观看 | 99久久久| 伊人视频 | 日女人电影 | 欧美日韩一区二区在线 | 国产97av| 亚州黄色一级 | 中国一级片在线观看 | 97国产精品视频 | 毛片在线网 | 久久精品久久99精品久久 | 久久第四色| 欧美一级久久久久 | 狠狠干2018 | 久操伊人 | 伊人亚洲综合网 | 久久综合偷偷噜噜噜色 | 免费福利片2019潦草影视午夜 | 日日干天天|