第三方登录之GitHub篇

第一步,准备工作。获取Client ID和Client Secret

1、自行登陆GitHub官网,点击Setting,如下图:

2、继续,点击Developer settings,如下图:

3、继续,点击Oauth Apps,如下图:

4、继续,点击New Oauth App,如下图:

5、继续,填写完毕后,点击Register application,如下图:

6、至此,我们已经成功拿到Client ID和Client Secret。另外,此页面还可以更改步骤5填写的相关信息,如下图:

第二步,代码部分。实现GitHub第三方登录

1、Login.aspx 代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="GitHubLogin.Login" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>

    <form id="form1" runat="server">
        <div>
            <a href="https://github.com/login/oauth/authorize?client_id=xxxxxxxxxxxxxxxxxxxxxx&state=STATE&redirect_uri=http://www.kudsu.xyz/">github登录</a>
        </div>
    </form>
</body>
</html>

2、Login.aspx.cs 代码

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GitHubLogin
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string code = Request.QueryString["code"] == null || Request.QueryString["code"].ToString() == "" ? "" : Request.QueryString["code"].ToString();
                if (code != "")
                {
                    //第二步,获取token
                    string tokenJson = LoadURLString("https://github.com/login/oauth/access_token?client_id=xxxxxxxxxxxxxxx&client_secret=xxxxxxxxxxxxxxx&code=" + code + "&redirect_uri=http://www.kudsu.xyz/", "post");
                    JObject jo = (JObject)JsonConvert.DeserializeObject(tokenJson);
                    tokenJson = jo["access_token"].ToString();
                    //第三步,获取GitHub用户信息
                    string userJson = LoadURLString("https://api.github.com/user?access_token=" + tokenJson, "get");
                    //把GitHub用户信息输出到页面上
                    Response.Write(userJson);
                }
            }
        }
        /// <summary>
        /// 请求url
        /// </summary>
        /// <param name="url">地址</param>
        /// <param name="GetPost">post、get</param>
        /// <returns></returns>
        private string LoadURLString(string url, string GetPost)
        {
            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create(url);
            request1.Method = GetPost;
            request1.ContentType = "application/json";
            request1.Accept = "application/json";
            request1.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            request1.UserAgent = "Mozilla/5.0 (Windows NT 5.2; rv:12.0) Gecko/20100101 Firefox/12.0";
            return new StreamReader(((HttpWebResponse)request1.GetResponse()).GetResponseStream(), Encoding.UTF8).ReadToEnd();
        }
    }
}

3、项目地址:https://github.com/kudsu/GitHubLogin

    亲,如果可以,给个星星~

原文地址:https://www.cnblogs.com/kudsu/p/11672610.html

时间: 2024-07-31 08:21:10

第三方登录之GitHub篇的相关文章

第三方登录:QQ登录实现(OAuth2.0)

一.创建应用 1.在 QQ互联 创建应用 地址:https://connect.qq.com/manage.html#/ 然后进行实名认证,创建应用,审核通过 然后点击查看,可以获得 APP ID 和 APP Key 回调地址如下 2.授权的基本原理 可以参考官方文档 1)根据QQ登录链接可以回调获得 code 2)根据APP ID .APP Key 和 code 可获得 token 3)根据 token 获得 OpenId 4)  根据 OpenId 可以获得用户的基本信息 其中 OpenId

基于oauth2.0实现应用的第三方登录

OAuth2 OAuth2所涉及到的对象主要有以下四个: Client 第三方应用,我们的应用就是一个Client Resource Owner 资源所有者,即用户 Authorization Server 授权服务器,即提供第三方登录服务的服务器,如Github Resource Server 拥有资源信息的服务器,通常和授权服务器属于同一应用 OAuth2的基本流程为: 第三方应用请求用户授权. 用户同意授权,并返回一个凭证(code) 第三方应用通过第二步的凭证(code)向授权服务器请求

项目完结记录-第三方登录(MicroSoft,qq,微信,微博,GitHub)

刚才再看core的东西,然而理解力太低,问问大神们写的啥,大神也很忙,算了. 想想还是做下上个项目总结好了,将来可能用的着. 第三方登录,虽然这部分不是我做的,不是你做的你还贴!项目总结嘛,又不一定是要我做的才能总结. 本次项目用到5个第三方登录,分别是MicroSoft,qq,微信,微博,GitHub. 先吐槽下,程序其实没什么难点,但是审批....尤其是企鹅,就他破事最多,文字图标都不能改. 1).MicroSoft的 前台: <a href="https://login.live.c

[Next] Next.js+Nest.js实现GitHub第三方登录

GitHub OAuth 第三方登录 第三方登录的关键知识点就是 OAuth2.0 . 第三方登录,实质就是 OAuth 授权 . OAuth 是一个开放标准,允许用户让第三方应用访问某一个网站的资源,而不需要提供账号和密码. 总体就是:myapp <===> user <===> github 授权的总体流程 用户进入到我的网站,我想要获取到用户的 GitHub 信息 跳转到 GitHub 授权页面,然后问用户是否允许我获得他的信息,授予权限 同意,我的网站会获得 GitHub

拾人牙慧篇之———QQ微信的第三方登录实现

一.写在前面 关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了.我只能保证我的这个是我实现后才贴出来的,本文有看不懂的地方请结合官网看.(话说我感觉我写博客废话好多) 二.准备工作 通过以下官网获得相应AppID和AppSecret以及对应的回调地址. QQ登录官网:https://connect.qq.com 微信登录官网:https://open.weixin.qq.com 三.登录

实现QQ、微信、新浪微博和百度第三方登录(Android Studio)

前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享: 各大开放平台注册账户获取AppKey和AppSecret Mob开放平台地址:http://www.mob.com/#/index QQ开放平台地址:http://open.qq.com/ 新浪微博开放平台地址:http://open.weibo.com/ 微信开放平台地址:https://open.weixin.qq.com/ 

iOS集成ShareSKD第三方登录

突然项目要求将原本的登录方式加入第三方登录,要求加入QQ,微博,微信这三个主流平台. 之前做android开发的时候试过集成QQ,微博的第三方登录,没有使用ShareSDK,直接一个平台一个平台的去集成,但是到处找文档,那个心都累了.这次果断选择了站在巨人的肩膀上,让自己开发更轻松点. ShareSDK,已经帮我们集成了多个平台的分享,登录的SDK,按需下载,也帮我们封装好了接口,使用起来相对简单,关键是省时间呀.. 集成第一步,还是先乖乖的到ShareSDK官网注册一个账号,然后创建一个应用,

android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

        Leaning_wk每一次的进步都会拉近与成功的距离! 帐号设置退出   关闭 qq_15855289的博客 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) android使用友盟实现第三方登录.分享以及微信回调无反应问题解决办法 标签: android友盟第三方登录分享微信登录回调问题 2017-02-10 16:2

第三方登录接入-qq,weibo-java

开发之前 需求:网站接入qq,sina微博登录,本文最后付效果图: 说明:大部分网站本身是需要用户概念的,很多操作依附于用户,而qq或微博作为一种登录方式指向用户而已,我参考了一下其他网站的做法, 一般有如下两种做法: 1,强制绑定:用户第一次通过qq登录时必须与该网站账户绑定,也就是用户必须要先有一个此网站账户才能登录成功 2,互相独立,用户第一次通过qq登录时直接重新为用户注册一个账户,如以用户名为qq_123456直接注册一个账户,与其他账户无关: 站在用户角度考虑下,可能需要更多的选择性