第三方登录(码云登录)
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.点击拒绝
我有一杯酒,足以慰风尘。