02-GitHub 第三方关联登陆

image-20200815155630313

参考资料:https://www.jianshu.com/p/78d186aeb526

1. 基于GitHub实现关联登陆

准备校验的 key:Client ID + Client Secret

1.1 申请应用

登录Github →头像 → setting → Developer Setting → Oauth App → 注册应用 → 填写信息 → 注册成功之后显示 Client ID 和 Client Secret
拼接:client_id=xxx&client_secret=xxx&code

1.2 使用GitHub进行登录

  1. 在页面上添加GitHub的图标,设置点击事件
    请求:https://github.com/login/oauth/authorize
    需要参数:

    1
    var params="?client_id=xxx&scope=user&state="+(new Date()).valueOf();

image-20200815160227048

1
2
3
4
5
/* 例子 */
$("#btngithub").click(function(){
var params = "?client_id=xxx&scope=user&state=" + (new Date()).valueOf();
location.href = "https://github.com/login/oauth/authorize" + params;
})
  1. 获取授权码,进行令牌获取
    请求的接口:https://github.com/login/oauth/access_token

image-20200815160650008

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$("#btntoken").click(function() {
var params = "client_id=xxx&client_secret=xxx&code=" + $("#gcode").val();
$.ajax({
url: "https://github.com/login/oauth/access_token",
data: params,
method: "post",
headers: {
"Accept": "application/json"
},
success: function(res) {
console.log(res);
}
});
})
  1. 请求用户信息
    请求接口:https://api.github.com/user?access_token=xxx
    需要参数:access_token=上一步获取的令牌值
1
2
3
4
5
6
7
8
9
$("#btnuser").click(function() {
$.ajax({
url: "https://api.github.com/user?access_token=xxx",
method: "get",
success: function(res) {
console.log(res);
}
});
})

02-GitHub 第三方关联登陆
https://janycode.github.io/2018/05/13/13_第三方/00_OAuth2.0/02-GitHub 第三方关联登陆/
作者
Jerry(姜源)
发布于
2018年5月13日
许可协议