项目地址:https://github.com/netnr/Netnr.Login

GitHub接入地址:https://developer.github.com/apps/building-oauth-apps/authorization-options-for-oauth-apps

接入方式:OAuth2.0

开发流程:

  • Step1. authorize 接口:https://github.com/login/oauth/authorize 获取用户授权,即页面跳转GitHub登录界面,GET请求,得到code
  • Step2. access_token 接口:https://github.com/login/oauth/access_token 根据code得到access_tokenPOST请求,注意:请求可以指定Acceptapplication/jsonapplication/xml
  • Step3. user 接口:https://api.github.com/user 根据access_token得到用户信息idemail,用户授权的唯一票据, GET请求,注意:该请求需要设置UserAgent等于GitHub申请的应用名称

示例

//获取 access_token
var accessToken_ResultEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity()
{
    code = Request.Query["code"]
});

//获取 user
var user_ResultEntity = GitHub.User(new GitHub_User_RequestEntity()
{
    access_token = accessToken_ResultEntity.access_token
});

//身份唯一标识,没有天朝授权获取的OpenId, 可以选择其它作为唯一凭证,如:账号、邮箱
//考虑账号有可能更改,邮箱不方便,建议以ID作为唯一凭证
string openId = user_ResultEntity.id.ToString();
if (string.IsNullOrWhiteSpace(openId))
{
    throw new Exception("身份验证失败");
}

留言

ˆ