久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Security OAuth 自定義授權(quán)方式實(shí)現(xiàn)手機(jī)驗(yàn)證碼

瀏覽:40日期:2023-07-24 09:55:23

Spring Security OAuth 默認(rèn)提供OAuth2.0 的四大基本授權(quán)方式(authorization_codeimplicitpasswordclient_credential),除此之外我們也能夠自定義授權(quán)方式。

先了解一下Spring Security OAuth提供的兩個(gè)默認(rèn) Endpoints,一個(gè)是AuthorizationEndpoint,這個(gè)是僅用于授權(quán)碼(authorization_code)和簡(jiǎn)化(implicit)模式的。另外一個(gè)是TokenEndpoint,用于OAuth2授權(quán)時(shí)下發(fā)Token,根據(jù)授予類(lèi)型(GrantType)的不同而執(zhí)行不同的驗(yàn)證方式。

OAuth2協(xié)議這里就不做過(guò)多介紹了,比較重要的一點(diǎn)是理解認(rèn)證中各個(gè)角色的作用,以及認(rèn)證的目的(獲取用戶(hù)信息或是具備使用API的權(quán)限)。例如在authorization_code模式下,用戶(hù)(User)在認(rèn)證服務(wù)的網(wǎng)站上進(jìn)行登錄,網(wǎng)站跳轉(zhuǎn)回第三方應(yīng)用(Client),第三方應(yīng)用通過(guò)Secret和Code換取Token后向資源服務(wù)請(qǐng)求用戶(hù)信息;而在client_credential模式下,第三方應(yīng)用通過(guò)Secret直接獲得Token后可以直接利用其訪(fǎng)問(wèn)資源API。所以我們應(yīng)該根據(jù)實(shí)際的情景選擇適合的認(rèn)證模式。

對(duì)于手機(jī)驗(yàn)證碼的認(rèn)證模式,我們首先提出短信驗(yàn)證的通常需求:

每發(fā)一次驗(yàn)證碼只能?chē)L試驗(yàn)證5次,防止暴力破解 限制驗(yàn)證碼發(fā)送頻率,單個(gè)用戶(hù)(這里簡(jiǎn)單使用手機(jī)號(hào)區(qū)分)1分鐘1條,24小時(shí)x條 限制驗(yàn)證碼有效期,15分鐘

我們根據(jù)業(yè)務(wù)需求構(gòu)造出對(duì)應(yīng)的模型:

@Datapublic class SmsVerificationModel { /** * 手機(jī)號(hào) */ private String phoneNumber; /** * 驗(yàn)證碼 */ private String captcha; /** * 本次驗(yàn)證碼驗(yàn)證失敗次數(shù),防止暴力嘗試 */ private Integer failCount; /** * 該user當(dāng)日嘗試次數(shù),防止濫發(fā)短信 */ private Integer dailyCount; /** * 限制短信發(fā)送頻率和實(shí)現(xiàn)驗(yàn)證碼有效期 */ private Date lastSentTime; /** * 是否驗(yàn)證成功 */ private Boolean verified = false;}

我們預(yù)想的認(rèn)證流程:

Spring Security OAuth 自定義授權(quán)方式實(shí)現(xiàn)手機(jī)驗(yàn)證碼

接下來(lái)要對(duì)Spring Security OAuth進(jìn)行定制,這里直接仿照一個(gè)比較相似的password模式,首先需要編寫(xiě)一個(gè)新的TokenGranter,處理sms類(lèi)型下的TokenRequest,這個(gè)SmsTokenGranter會(huì)生成SmsAuthenticationToken,并將AuthenticationToken交由SmsAuthenticationProvider進(jìn)行驗(yàn)證,驗(yàn)證成功后生成通過(guò)驗(yàn)證的SmsAuthenticationToken,完成Token的頒發(fā)。

public class SmsTokenGranter extends AbstractTokenGranter { private static final String GRANT_TYPE = 'sms'; private final AuthenticationManager authenticationManager; public SmsTokenGranter(AuthenticationManager authenticationManager, AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory){ super(tokenServices, clientDetailsService, requestFactory, GRANT_TYPE); this.authenticationManager = authenticationManager; } @Override protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) { Map<String, String> parameters = new LinkedHashMap<>(tokenRequest.getRequestParameters()); String phone = parameters.get('phone'); String code = parameters.get('code'); Authentication userAuth = new SmsAuthenticationToken(phone, code); try { userAuth = authenticationManager.authenticate(userAuth); } catch (AccountStatusException ase) { throw new InvalidGrantException(ase.getMessage()); } catch (BadCredentialsException e) { throw new InvalidGrantException(e.getMessage()); } if (userAuth == null || !userAuth.isAuthenticated()) { throw new InvalidGrantException('Could not authenticate user: ' + username); } OAuth2Request storedOAuth2Request = getRequestFactory().createOAuth2Request(client, tokenRequest); return new OAuth2Authentication(storedOAuth2Request, userAuth); }}

對(duì)應(yīng)的SmsAuthenticationToken,其中一個(gè)構(gòu)造方法是認(rèn)證后的。

public class SmsAuthenticationToken extends AbstractAuthenticationToken { private final Object principal; private Object credentials; public SmsAuthenticationToken(Object principal, Object credentials) { super(null); this.credentials = credentials; this.principal = principal; } public SmsAuthenticationToken(Object principal, Object credentials,Collection<? extends GrantedAuthority> authorities) { super(authorities); this.principal = principal; this.credentials = credentials; // 表示已經(jīng)認(rèn)證 super.setAuthenticated(true); } ...}

SmsAuthenticationProvider是仿照AbstractUserDetailsAuthenticationProvider編寫(xiě)的,這里僅僅列出核心部分。

public class SmsAuthenticationProvider implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { String username = authentication.getName(); UserDetails user = retrieveUser(username); preAuthenticationChecks.check(user); String phoneNumber = authentication.getPrincipal().toString(); String code = authentication.getCredentials().toString(); // 嘗試從Redis中取出Model SmsVerificationModel verificationModel =Optional.ofNullable( redisService.get(SMS_REDIS_PREFIX + phoneNumber, SmsVerificationModel.class)).orElseThrow(() -> new BusinessException(OAuthError.SMS_VERIFY_BEFORE_SEND)); // 判斷短信驗(yàn)證次數(shù) Optional.of(verificationModel).filter(x -> x.getFailCount() < SMS_VERIFY_FAIL_MAX_TIMES).orElseThrow(() -> new BusinessException(OAuthError.SMS_VERIFY_COUNT_EXCEED)); Optional.of(verificationModel).map(SmsVerificationModel::getLastSentTime)// 驗(yàn)證碼發(fā)送15分鐘內(nèi)有效,等價(jià)于發(fā)送時(shí)間加上15分鐘晚于當(dāng)下.filter(x -> DateUtils.addMinutes(x,15).after(new Date())).orElseThrow(() -> new BusinessException(OAuthError.SMS_CODE_EXPIRED)); verificationModel.setVerified(Objects.equals(code, verificationModel.getCaptcha())); verificationModel.setFailCount(verificationModel.getFailCount() + 1); redisService.set(SMS_REDIS_PREFIX + phoneNumber, verificationModel, 1, TimeUnit.DAYS); if(!verificationModel.getVerified()){ throw new BusinessException(OAuthError.SmsCodeWrong); } postAuthenticationChecks.check(user); return createSuccessAuthentication(user, authentication, user); } ...

接下來(lái)要通過(guò)配置啟用我們定制的類(lèi),首先配置AuthorizationServerEndpointsConfigurer,添加上我們的TokenGranter,然后是AuthenticationManagerBuilder,添加我們的AuthenticationProvider。

@Configuration@EnableAuthorizationServerpublic class OAuth2Config extends AuthorizationServerConfigurerAdapter { @Override public void configure(AuthorizationServerSecurityConfigurer security) throws Exception { security.passwordEncoder(passwordEncoder).checkTokenAccess('isAuthenticated()').tokenKeyAccess('permitAll()')// 允許使用Query字段驗(yàn)證客戶(hù)端,即client_id/client_secret 能夠放在查詢(xún)參數(shù)中.allowFormAuthenticationForClients(); } @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { endpoints.authenticationManager(authenticationManager).userDetailsService(userDetailsService).tokenStore(tokenStore); List<TokenGranter> tokenGranters = new ArrayList<>(); tokenGranters.add(new AuthorizationCodeTokenGranter(endpoints.getTokenServices(), endpoints.getAuthorizationCodeServices(), clientDetailsService,endpoints.getOAuth2RequestFactory())); ... tokenGranters.add(new SmsTokenGranter(authenticationManager, endpoints.getTokenServices(),clientDetailsService, endpoints.getOAuth2RequestFactory())); endpoints.tokenGranter(new CompositeTokenGranter(tokenGranters)); }}

@EnableWebSecurity@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter { ... @Override protected void configure(AuthenticationManagerBuilder auth) { auth.authenticationProvider(daoAuthenticationProvider()); } @Bean public AuthenticationProvider smsAuthenticationProvider(){ SmsAuthenticationProvider smsAuthenticationProvider = new SmsAuthenticationProvider(); smsAuthenticationProvider.setUserDetailsService(userDetailsService); smsAuthenticationProvider.setSmsAuthService(smsAuthService); return smsAuthenticationProvider; }}

那么短信驗(yàn)證碼授權(quán)的部分就到這里了,最后還有一個(gè)發(fā)送短信的接口,這里就不展示了。

最后測(cè)試一下,curl --location --request POST ’http://localhost:8080/oauth/token?grant_type=sms&client_id=XXX&phone=手機(jī)號(hào)&code=驗(yàn)證碼’ ,成功。

{ 'access_token': '39bafa9a-7e5b-4ba4-9eda-e307ac98aad1', 'token_type': 'bearer', 'expires_in': 3599, 'scope': 'ALL'}

到此這篇關(guān)于Spring Security OAuth 自定義授權(quán)方式實(shí)現(xiàn)手機(jī)驗(yàn)證碼的文章就介紹到這了,更多相關(guān)Spring Security OAuth手機(jī)驗(yàn)證碼內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 激情在线观看视频 | 久久精品久久久久 | av在线网址观看 | 精品久久一区二区 | 成人免费福利 | 亚洲综合一区二区 | 操到爽 | 91性高湖久久久久久久久网站 | 欧美一区二区大片 | 色综合欧美 | 日韩中文字幕一区 | 在线观看免费av电影 | 国产精品久久久一区二区 | 国产69精品久久久久观看黑料 | 激情欧美一区二区三区中文字幕 | 香蕉视频91 | 青青草av | 日韩免费高清视频 | 国产精品一区2区 | 黑人巨大精品欧美一区免费视频 | 中文字幕一区二区三区精彩视频 | 一级女性全黄久久生活片免费 | 日韩和的一区二区 | 欧美日韩国产综合网 | 亚洲在线免费观看 | 亚洲精品视频在线播放 | 欧美一区二区三区精品 | 亚洲一区二区av | 最新高清无码专区 | 欧美一级视频在线观看 | 日韩一二三区 | 国产精品美女久久久久久免费 | 国产精品久久久久久久久久 | 国产日韩一区 | 成人精品一区二区三区 | 欧美激情网址 | 在线精品亚洲 | 亚洲一本 | 男人天堂亚洲 | 一区二区三区自拍 | 国产精品久久久久久久久污网站 | 欧美专区在线 | 国产成人精品一区二区三区视频 | av在线免费观看一区二区 | 久久精品国产一区二区三区不卡 | 中文字幕视频在线 | 超碰97免费在线 | 精品久久精品久久 | 国产精品毛片久久久久久久 | 日日噜| 国产人妖在线 | 日韩成人在线观看 | 久久一道本| 国产精品免费一区二区三区四区 | 国产激情在线看 | 国产在线一二三区 | 玖玖视频 | 亚洲欧美视频 | 羞羞的视频在线免费观看 | 91亚洲日本aⅴ精品一区二区 | 呦呦在线观看 | 国产视频一区二区 | 久久精品亚洲精品国产欧美kt∨ | 色综久久 | 天天操综 | 久操草| 国产a视频 | 日韩精品在线视频 | 午夜寂寞影视在线观看 | 欧美日韩精品一区 | 精品成人久久 | 91视频免费看片 | 久在线视频播放免费视频 | 在线一区二区三区 | 高清av网站| 精一区二区 | 欧洲精品视频一区 | 国产综合精品一区二区三区 | 一区在线视频 | 免费国产一区 | www.成人久久 | 欧美大成色www永久网站婷 | 蜜桃一区二区 | 国产精品毛片一区二区三区 | 欧美性网 | 国产黑丝在线 | 国产精品www| 日韩一及片 | 奇米影视7777 | 久久久在线视频 | 久久精品国产一区二区三区不卡 | 欧美日韩一区二区三区在线观看 | 欧美簧片在线 | 欧美日韩中文在线观看 | 一区在线不卡 | 图片区 国产 欧美 另类 在线 | 一区二区中文 | 久草免费在线视频 | 国产精品一区在线观看你懂的 | 一区不卡 | 色欧美片视频在线观看 | 久久精品视频网站 | 依人成人综合网 | 国产日韩欧美一区二区 | 香蕉视频一级片 | 成人三级网址 | 国产美女高潮 | 高清一区二区三区视频 | 91超碰在线播放 | 人人草在线观看视频 | 浴室洗澡偷拍一区二区 | 国产视频精品久久 | 偷拍自拍亚洲欧美 | 国产精品第2页 | 欧美99热 | 午夜免费剧场 | 99热免费精品 | 免费毛片网站 | 国产精品久久久久久久久大全 | 欧美日韩综合一区 | 亚洲免费在线 | 成人精品一区 | 999在线观看精品免费不卡网站 | 欧美一区二区三区在线视频 | 久久女同互慰一区二区三区 | 色视频www在线播放国产人成 | 国产三级一区二区 | 久久高清精品 | 91久久精品一区二区二区 | av在线一区二区 | 色xx综合网 | 久久精品一 | 国产成人精品一区二区三区视频 | 亚洲美女网址 | 久久成人一区二区 | www精品| 久久av综合网 | 亚洲高清免费 | 福利久久久 | 91久久夜色精品国产网站 | 黄色小视频在线免费观看 | 午夜精品久久久久久久星辰影院 | 黄色一级免费大片 | 操操操操操操操 | 午夜av在线| 亚洲一区av在线 | 色婷婷综合久久久中字幕精品久久 | 91高清在线观看 | 亚洲第一av | 欧美日韩亚洲一区二区 | 一区二区三区四区在线播放 | 永久av | 日韩av一区在线 | 久久久精| 久久久久久免费视频 | 亚洲高清在线观看 | 国产精品久久国产愉拍 | 鲁一鲁综合 | 91在线观看 | 久久精品高清 | 不卡的免费av | 九九热这里都是精品 | 国产日韩欧美一区二区 | 资源av| 99精品国产热久久91蜜凸 | av网站观看| 一级片免费视频 | 成人免费一区二区三区视频网站 | 国产精品中文字幕在线观看 | 亚洲91精品 | 亚洲成人影院在线观看 | 天堂在线中文 | 国产亚洲成av人片在线观看桃 | 国产欧美精品一区二区三区四区 | 久热官网 | a级黄色在线观看 | 久久精品 | 亚洲网在线 | 久久久久一区二区 | 国产乱码精品一区二区三区中文 | av中文在线| 成人福利在线 | 99精品一区二区三区 | 亚洲国产精品99久久久久久久久 | 美女福利网站 | 成人免费黄色片 | 亚洲久草 | 亚洲一区二区三区高清 | 欧美人成在线视频 | 日韩中文字幕一区二区 | 亚洲性视频网站 | www精品| 精品中文字幕一区二区 | 国产男人的天堂 | 2019天天干 | 亚洲网站免费 | 国产成人精品免费 | 午夜精品一区二区三区在线 | 婷婷在线视频 | 韩日精品 | 亚洲综合婷婷 | 国产精品久久久久婷婷二区次 | 精品国产一区二区三区性色av | 日韩免费精品视频 | 性欧美大战久久久久久久免费观看 | 久久亚| 日本不卡视频 | 精品人成 | 亚洲三级视频 | 日韩综合一区 | 91中文在线观看 | 国产精品久久久久久久久久久久久 | 视频在线一区 | 欧美成人黄激情免费视频 | 久视频在线观看 | 精品久久久久久久久久久 | 久久成人av | 国产一区二区三区久久久久久久久 | 黄色高清视频 | 欧美11一13sex性hd | 爱爱视频免费 | 国产91久久久| 久久精品国产99精品国产亚洲性色 | 色天天久久 | av网站观看 | 999在线观看精品免费不卡网站 | 可以免费看的av | 亚洲精品一区二区三区蜜桃久 | 91中文字幕 | 精品视频在线观看 | 国产成人免费视频网站高清观看视频 | 免费h在线观看 | 亚洲综合色自拍一区 | 日韩精品一区二区在线观看视频 | 国产a免费 | 精品一区二区av | 91干在线观看 | 天天干com | 亚洲精品一区二区三区在线观看 | 国产大学生情侣呻吟视频 | 日韩中文字幕在线 | 日本综合色 | 欧美精品成人一区二区在线 | 在线国产一区 | 一区二区三| 亚洲精品一区二区三区在线看 | 亚洲一区中文字幕 | 国产亚洲精品精品国产亚洲综合 | 密室大逃脱第六季大神版在线观看 | 黄理论视频| 国产精品综合久久 | 国产高清一区二区 | 99国产视频 | 日本一区二区电影 | 黄色a视频| 欧美在线a | 99精品欧美一区二区三区综合在线 | 成人在线免费 | 国产精品第一国产精品 | 一级黄色影片在线观看 | 成人欧美一区二区三区 | 中文字幕在线观看www | 九七超碰在线 | 国产精品一区在线观看你懂的 | 国产精久久久久久久妇剪断 | 交视频在线观看国产 | 国产色婷婷精品综合在线播放 | 国产超碰人人爽人人做人人爱 | 蜜桃comaaa | 欧美国产日韩在线 | 亚洲成人精品 | 久久激情五月丁香伊人 | 亚洲一区二区三区免费视频 | 成人久久久久久久久 | 日本女人高潮视频 | 久久这里只有精品8 | 特级做a爰片毛片免费看108 | 国产成人精品一区二区三区 | 日本精品免费观看 | 日韩欧美精品一区二区三区 | 国产成人综合网 | 久久av一区 | 成人亚洲网 | 免费av在线播放 | 亚洲免费视频网 | 亚洲一区二区 | 国产欧美一区二区视频 | 成人av免费观看 | 久久在线视频 | 亚洲激情精品 | 久久久美女 | 久久在线播放 | 日韩一区二区影视 | 一区三区视频 | 久草新 | 欧美专区中文字幕 | 国产麻豆乱码精品一区二区三区 | 久久小草| 日韩精品一区二区三区第95 | 国产视频综合在线 | 日韩成人精品在线 | 成人av免费在线 | 国产精品久久久久久久午夜 | 天堂色网 | 99中文字幕| 国产成人一区 | 亚洲一区不卡 | 久久久亚洲精品视频 | 国产精品久久久久久一级毛片 | 日日日操 | 一区二区三区精品视频 | 日本不卡高字幕在线2019 | 日韩欧美网址 | 国产伊人av | 欧美伊人| 亚洲国产成人在线 | 欧美日韩一区二区三区在线观看 | 国产日产精品一区二区三区四区 | 91超碰caoporm国产香蕉 | 91在线视频在线 | 精品一二三区在线观看 | 久久久国产视频 | 亚洲一区二区三区在线免费观看 | 国产一区二区三区四区五区加勒比 | 欧美激情一区二区三区四区 | 天天天干天天天操 | 日韩欧美一级精品久久 | 性视频网 | 91色爱| 天天干 夜夜操 | 国产精品成人一区二区 | 不卡一区二区三区视频 | 日本激情视频一区二区三区 | 午夜视频网址 | 99精品欧美一区二区三区综合在线 | 亚洲免费视频大全 | 日本一区二区成人 | 成人在线观看免费视频 | 久久精品国产99国产 | 午夜小视频在线观看 | 久久99精品国产自在现线 | 国产精品视频一区二区三区四蜜臂 | 热久久影院 | 99久久久久久 | 国产免费一区二区三区 | 岛国a视频 | 美女天天操 | 国产精品毛片 | 久一在线 | 一区二区三区视频免费在线观看 | 欧美一级片在线观看 | 天天射影院 | 日韩av免费在线播放 | 日韩亚洲欧美综合 | 91日韩精品一区二区三区 | 在线观看国产www | 三级国产网站 | 午夜影院免费体验区 | 欧美在线一区二区 | 精品国产乱码一区二区三区四区 | av免费在线观看网站 | 成人精品高清 | 国产日韩av在线 | 青草视频在线免费观看 | 日本不卡一区二区三区在线观看 | 欧美激情国产日韩精品一区18 | a网站在线观看 | 欧美日韩国产一区二区三区 | 久久国产欧美日韩精品 | 日韩综合一区二区 | 欧美福利在线观看 | 中文在线一区二区 | 日韩在线视频在线观看 | 午夜男人天堂 | 中文字幕日韩欧美一区二区三区 | 杨门女将寡妇一级裸片看 | 精品国产31久久久久久 | 中文字幕成人影院 | 亚洲性生活免费视频 | 99精品久久久久久久免费看蜜月 | 天天干狠狠干 | 黄色小视频在线免费观看 | 国产免费一区 | 一区二区电影 | 日韩电影免费在线观看中文字幕 | 蜜臀久久99精品久久久无需会员 | 日韩在线精品视频 | 伊人操操 | 亚洲免费一区二区 | 欧美另类专区 | 亚洲成人一区二区 | 亚洲片在线观看 | 国产精品影院在线观看 | 久久99国产精品久久99大师 | 日韩精品一区二区三区在线观看 | 日韩欧美精品一区二区三区 | 亚洲国产精品成人 | 一区二区在线 | 君岛美绪一区二区三区在线视频 | 欧美视频网站 | 国产精品69毛片高清亚洲 | 精品一区二区三区视频 | 九色在线视频 | 亚洲一区二区中文字幕 | 国产视频三区 | 精品欧美乱码久久久久久 | 日韩中文一区二区三区 | 欧美成人a | 日韩精品一区二区三区第95 | 在线色网 | 亚洲国产成人在线 | 亚洲国产成人av | 精品免费久久久久 | 久久九九这里只有精品 | 国产精品三级久久久久久电影 | 久久99精品久久久久子伦 | 先锋资源中文字幕 | 国产艹 | 大桥未久亚洲精品久久久强制中出 | 欧美日韩久久 | 中文字幕第七页 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲综合色网 | 97超碰在线播放 | 91精品国产综合久久久久久丝袜 | 国内精品视频一区二区三区八戒 | 青楼18春一级毛片 | 亚洲欧美久久久 | 久久精品在线 | 久久99精品视频 | 在线色网 | 在线免费av观看 | 日韩在线视频播放 | 日韩一区二区在线观看 | 中文字幕亚洲欧美日韩在线不卡 | 久久久久久久99精品免费观看 | 天天干天天操 | 国产在视频一区二区三区吞精 | 免费在线观看一区二区 | h免费在线观看 | 成人久久久| 亚洲视频一区二区 | 国产一区二区毛片 | 亚洲精品第一区在线观看 | 日韩精品久久理论片 | 久久免费精品视频 | 久久9999 | 午夜小视频在线观看 | 国产一级一级片 | 爱免费视频| 日韩欧美视频 | 免费高清一级毛片 | 北条麻妃一区二区三区在线观看 | 蜜臀一区 | 亚洲欧美国产精品久久 | 天堂va在线高清一区 | 一级黄色片a级 | 国产欧美精品一区二区 | 精品亚洲视频在线观看 | 亚洲第一精品在线 | 天天干人人 | 日韩精品一区二区三区四区视频 | 久久人人爽人人爽人人片av软件 | 成人在线免费视频 | 国产精品色婷婷亚洲综合看 | 一级全黄少妇性色生活片毛片 | 欧美精品一区二 | 欧美日韩在线观看中文字幕 | 99热播在线 | 日韩成人在线观看 | 91成人黄色| 精品美女一区 | 91在线导航 | 日韩精品在线免费观看 | 国产精品视频入口 | 久久国| 特黄视频 | 91九色在线 | 精品久久久久国产 | 人人叉人人 | 久久中文字幕一区二区 | 狠狠亚洲 | 日韩在线成人 | 99精品视频在线观看 | 精品国产一区二区国模嫣然 | 色婷婷综合网 | 九九99久久 | 成人免费网站在线观看 | 久久青草国产 | 亚洲午夜精品久久久久久app | 情趣视频在线免费观看 | 在线观看免费黄色片 | 日韩一区二区三区在线观看 | 夜夜av | 国产精品高颜值在线观看 | 亚洲a网| 国产一区二区免费 | 色网在线 | 天天看天天爽 | 国产高清一区二区 | 午夜私人影院 | 成人高清视频在线观看 | 黄色成人免费看 | 成人深夜在线观看 | 欧美性大战久久久久久久蜜臀 | 二区三区 | 成人久久| 91视频三区 | 91精品区 | 婷婷av在线 | 日本a视频 | 亚洲国产高清在线 | xnxx 日本19| 欧美久久一区二区三区 | 亚洲成人精品在线观看 | 国产精品毛片久久久久久久 | 狠狠躁夜夜躁人人爽视频 | 精品日韩一区二区三区 | 欧美大片网站 | 中国国产一级毛片 | 久久国产精品一区 | 最新av中文字幕 | 自拍第一页 | 欧美精品成人一区二区三区四区 | 国产高清视频在线 | 欧美激情在线精品一区二区三区 | 九九热欧美 | 91精品久久久久久 | 精品在线一区二区 | 成人v片 | 欧美视频在线免费 | 狠狠爱网站| 国产一页| 一区二区三区高清 | 日韩中文字幕一区二区高清99 | 毛片在线免费 | 狠狠色丁香婷婷综合 | 成人免费视频在线观看 | 91精品国产乱码久久久久久 | 欧美一级欧美三级在线观看 | 久草免费在线 | 国内在线精品 | 狠狠av| 成人亚洲一区二区 | 偷拍自拍第一页 | 一区二区三区视频在线观看 | av在线一区二区 | 黄色成人在线 | 欧美视频一二 | 五月婷综合 | 欧日韩毛片 | 一级黄色录像毛片 | 七龙珠z普通话国语版在线观看 | 亚洲一二三区在线观看 | 91久久精品一区二区二区 | 亚洲人成网站999久久久综合 | 国产一区二区三区久久久久久 | 久久久亚洲成人 | 久久精品成人一区二区三区蜜臀 | 久久人人爽人人爽人人片av软件 | 一区二区日韩精品 | 狠狠的干 | 久久久xxx| 欧美一级在线观看 | 亚洲中字在线 | 日韩日韩日韩日韩日韩日韩日韩 | 一区二区影视 | 亚洲精品www| a性片| 国产精品亚洲一区 | 亚洲国产精品一区二区第一页 | 精品一区二区av | 99er视频| 一区二区免费在线视频 | 亚洲天堂一区 | 国产1级片 | 日韩免费一区二区 | 成人狠狠干 | 欧美日韩精品免费观看视频 | 国产成人精品久久 | 精品一区二区在线观看 | 亚洲成av| 国产一区二区视频在线观看 | 国产人久久人人人人爽 | 日本一区二区三区四区不卡视频 | 国产精品99精品久久免费 | www.国产视频| www.国产高清 | 色欧美综合 | 在线色站 | 成人免费大片黄在线播放 | 国产精品久久国产精品 | 欧洲精品乱码久久久久蜜桃 | 麻豆视频91 | 亚洲精品一| 国产精品456在线影视 | 午夜视频一区二区三区 | 成人国产免费视频 | 欧美亚洲日本 | www伊人 | 亚洲精品久久久久久久久久久 | 国产在线视频一区二区 | 中文字幕二区 | 欧美激情一区二区 | 日本在线观看一区二区 | 日韩成人在线观看视频 | 国内精品国产三级国产在线专 | 亚洲精品一区国语对白 | 亚洲国产精品久久 | 久久性| 激情毛片| 亚洲自拍偷拍av | 久久99精品久久久久久青青日本 | 天天看天天干 | 精品久久不卡 |