第三方登录(码云登录)

1.什么是第三方登录

  第三方登录在我们现在的生活中非常的常见,一种软件可以有好几种登陆方式,QQ可以用手机号登录,微信可以使用QQ号登录,简单来说,就是一种授权机制,数据的所有者通过这种方式告诉系统,同意授权第三方应用进入系统,获取这些数据,系统从而产生,一个短期的进入令牌(token),代替密码供第三方应用使用。

2.下面准备前戏,www.gitee.com

  1.登录gitee账号,点击设置

 

 

  2.绑定手机号码

 

 

 

 

 

  3.设置地方应用

       1.

  

 

        2.

   

      3.

 

 

 

 

     4.

 

 

   

   3.开始操作

      1.在前端登录的位置旁边加上这行代码

<a href="/gitLogin">git登录</a><br>

      2.后端相应的方法

/**
     *  git 登录
     *
     */
    @RequestMapping("/gitLogin")
    public String gitLogin(){
        //和git 上面的回调地址一致
        String url = "http://localhost:80/auth";
        return "redirect:"+ GitUtil.getUrl(url);
    }

  

      3.工具类如下  

public class GitUtil {

    /**
     *  Client ID  就是我在gitee 上标记的那一串字符
     */
    public static final String clientId="aa";

    public  static String getUrl(String rollBackUrl){
        String url = "https://gitee.com/oauth/authorize?response_type=code" +
                "&client_id=" + clientId +
                "&redirect_uri=" + URLEncoder.encode(rollBackUrl) ;
        return url;
    }
}

 

 

 

   4.回调方法

/**
     *  检查权限
     */
    @RequestMapping("/auth")
    public String auth(HttpServletRequest request){
        //如果error 有参数,则说明没有授权
        String error = request.getParameter("error");
        if(StringUtils.isNotEmpty(error)){
            String msg = request.getParameter("error_description");
            request.setAttribute("msg",msg);
            //失败  重新登陆
            return "login";
        }
        //  成功  重定向到查询列表
        return "redirect:list";
    }

 

   4.演示

 

      1.点击同意授权

 

 

      2.点击拒绝

 

posted @ 2021-12-28 08:11  御本美琴初号机  阅读(716)  评论(0编辑  收藏  举报