简单案例
说明:
- 当前客户有一个现有pc网站(A站), 需要从A站登录之后的控制台,提供另外一个B站的直接单点进入B站。这里只提供相同账号进行单点进入。
- 这种场景是需要满足A站和B站拥有相同的账号。
- 这种只是一种较为简单的情况案例,只能用于特定简单的场景。
/**
* A站调用B站的白名单接口
* B站提供的单点接口
* @param // username 账号
* @param // redirect B站的登录地址(回调地址)
*/
@GetMapping("xxLogin")
public void xxLogin(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
HttpSession httpSession = request.getSession();
String username = request.getParameter("username"); // 账号
String redirectUrl = request.getParameter("redirect"); // 成功后回调地址
// 通过账号生成Token, 具体生成规则与实际情况而定
String ACCESS_TOKEN = ""; // token值
// T1 = "存储token名称",这里假设为 token
Cookie token_Cookie = new Cookie(T1, ACCESS_TOKEN);
token_Cookie.setPath("/");
response.addCookie(token_Cookie);
// T2 = "刷新token名称",这里假设为 refresh_token
Cookie refresh_token_Cookie = new Cookie(T2, ACCESS_TOKEN);
refresh_token_Cookie.setPath("/");
response.addCookie(refresh_token_Cookie);
// 设置后端认证成功标识(可有可无,看实际场景而定)
// T3 = "B站前端重定向存储的token名称",这里假设为 token
httpSession.setAttribute(T3, ACCESS_TOKEN);
// 登录成功后跳转到B站登录成功后的首页
response.sendRedirect(redirectUrl);
}