package com.qianwen.smartman.modules.auth.endpoint;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import java.io.IOException;
|
import javax.servlet.http.HttpServletResponse;
|
import me.zhyd.oauth.model.AuthCallback;
|
import me.zhyd.oauth.model.AuthToken;
|
import me.zhyd.oauth.request.AuthRequest;
|
import me.zhyd.oauth.utils.AuthStateUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.smartman.common.constant.FmsConstant;
|
import com.qianwen.core.social.utils.SocialUtil;
|
import com.qianwen.core.tenant.annotation.NonDS;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
@RequestMapping({"blade-auth"})
|
@Api(value = "第三方登陆", tags = {"第三方登陆端点"})
|
@RestController
|
@NonDS
|
@ConditionalOnProperty(value = {"social.enabled"}, havingValue = FmsConstant.AUTOMATIC)
|
public class BladeSocialEndpoint {
|
private static final Logger log = LoggerFactory.getLogger(BladeSocialEndpoint.class);
|
|
@GetMapping({"/oauth/render/{source}"})
|
@ApiOperation("授权完毕跳转")
|
public void renderAuth(@PathVariable("source") String source, HttpServletResponse response) throws IOException {
|
AuthRequest authRequest = SocialUtil.getAuthRequest(source);
|
String authorizeUrl = authRequest.authorize(AuthStateUtils.createState());
|
response.sendRedirect(authorizeUrl);
|
}
|
|
@RequestMapping({"/oauth/callback/{source}"})
|
@ApiOperation("获取认证信息")
|
public Object login(@PathVariable("source") String source, AuthCallback callback) {
|
AuthRequest authRequest = SocialUtil.getAuthRequest(source);
|
return authRequest.login(callback);
|
}
|
|
@RequestMapping({"/oauth/revoke/{source}/{token}"})
|
@ApiOperation("撤销授权")
|
public Object revokeAuth(@PathVariable("source") String source, @PathVariable("token") String token) {
|
AuthRequest authRequest = SocialUtil.getAuthRequest(source);
|
return authRequest.revoke(AuthToken.builder().accessToken(token).build());
|
}
|
|
@RequestMapping({"/oauth/refresh/{source}"})
|
@ApiOperation("续期令牌")
|
public Object refreshAuth(@PathVariable("source") String source, String token) {
|
AuthRequest authRequest = SocialUtil.getAuthRequest(source);
|
return authRequest.refresh(AuthToken.builder().refreshToken(token).build());
|
}
|
}
|