package com.lktx.center.controller; import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.StpUtil; import cn.hserver.core.ioc.annotation.Autowired; import cn.hserver.core.server.util.JsonResult; import cn.hserver.plugin.web.annotation.Controller; import cn.hserver.plugin.web.annotation.RequestMapping; import cn.hserver.plugin.web.interfaces.HttpRequest; import cn.hserver.plugin.web.interfaces.HttpResponse; import com.lktx.center.config.Data; import com.lktx.center.config.SsoAuthRequest; import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.model.AuthCallback; import me.zhyd.oauth.model.AuthResponse; import me.zhyd.oauth.model.AuthToken; import me.zhyd.oauth.model.AuthUser; import me.zhyd.oauth.utils.AuthStateUtils; @Slf4j @Controller("/oauth") public class RestAuthController { @Autowired private SsoAuthRequest authRequest; @RequestMapping("/render") public void renderAuth(HttpResponse response) { String authorize = authRequest.authorize(AuthStateUtils.createState()); response.redirect(authorize); } @RequestMapping("/callback") public JsonResult login(AuthCallback callback, HttpRequest request) { try { String rawData = request.getRawData(); System.out.println(rawData); AuthResponse login = authRequest.login(callback); AuthUser data = login.getData(); AuthToken token = login.getData().getToken(); StpUtil.login(login.getData().getUuid()); SaSession session = StpUtil.getSession(); session.set(Data.AuthToken, token); return JsonResult.ok().put("data", data); }catch (Exception e) { log.error("login error",e); } return JsonResult.error(); } }