定制手机号码官方网站,网站服务器大小,网站建设咨询电话,怎样进入小程序入口啊我使用的是password模式#xff0c;并配置了token模式
一、登录 (这里我使用的示例是用户名密码认证方式)
1. Oath2提供默认登录授权接口
org.springframework.security.oauth2.provider.endpoint.postAccess;
Tokenpublic ResponseEntityOAuth2AccessToken pos…我使用的是password模式并配置了token模式
一、登录 (这里我使用的示例是用户名密码认证方式)
1. Oath2提供默认登录授权接口
org.springframework.security.oauth2.provider.endpoint.postAccess;
Tokenpublic ResponseEntityOAuth2AccessToken postAccessToken( Principal principal, RequestParam MapString, String parameters); 入参 principalparameters
1. principal代表的是认证信息
2.parameters携带信息 这里直接用UsernamePasswordAuthenticationToken生成凭证并构造出需要的参数
UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken new UsernamePasswordAuthenticationToken(c1,secret,authorities);HashMapString, String param new HashMap();
param.put(grant_type,password);
param.put(username,user.getUsername());
param.put(password,user.getPassword());usernamePasswordAuthenticationToken.setDetails(param);
tokenEndpoint.postAccessToken(usernamePasswordAuthenticationToken, stringHashMap)
在postAccessToken方法中
TokenRequest tokenRequest getOAuth2RequestFactory().createTokenRequest(parameters, authenticatedClient);
就是根据传入的param和token进行构造。
OAuth2AccessToken token getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);根据tokenRequest去生成token
到这里token就会生成完毕。
二、登出
String access tokenObj.get(accessToken);
String refresh tokenObj.get(refreshToken);
OAuth2AccessToken accessToken tokenStore.readAccessToken(access);
OAuth2RefreshToken refreshToken tokenStore.readRefreshToken(refresh);
tokenStore.removeRefreshToken(refreshToken);
tokenStore.removeAccessToken(accessToken);
自定义登出接口然后传入token和刷新token利用tokenStore进行删除即可。
Oauth2 有许多的坑需要去填如果有需要请留言我会出一期完整博客记录Oauth2认证与授权