QQ登录整合/oauth2.0认证-02-跳转到QQ互联页

---------------------------目录----------------------------------

QQ登录整合/oauth2.0认证-01-申请appkey和appid

---------------------------正文----------------------------------

在上一讲里面,主要是 要读者们 先准备一个 appid 和appkey,准备这个 可能需要一段时间审核,公司类型的可能稍微慢一点

其实 关键是 你能有一个可以绑定上域名的空间,也就是你的网站需要能运行,是通过域名访问的网站,国内服务器可能需要备案,

国外就不需要,腾讯在审核的时候会有工作人员登录你的访问,进行审查,审查通过了,才能使用

至于腾讯是否审核通过 这个不用担心的

那么 这一集就假定你已经 申请过了 appid 和appkey

这一集 我们来操作第一步

注:整合方式可以不按我下面的方式来,下面只是讲一种简单的例子而已

首先 我们创建一个 aspx页面 放置一个按钮 我这里是使用的是 webform.aspx

在aspx页面 添加一个按钮

<asp:Button ID="ButtonQQLogin" runat="server" Text="Button" onclick="ButtonQQLogin_Click" />

然后添加click事件 在事件里面 我们进行跳转到QQ登陆页面 这里有一些地方要注意的

       //按钮事件
        protected void ButtonQQLogin_Click(object sender, EventArgs e)
        {
            string salt = string.Empty;
            string url = GetAuthCodeUrl("",out salt);
            Response.Redirect(url);
        }
        
       //组装跳转地址 注意 callback  可以从外面传进来 当然 你可以写到配置文件里面 我这里为了主要是方便测试 所以写死了
        public string GetAuthCodeUrl(string callback, out string state)
        {
            state = Common.RandomText.String(16);//随机数
            callback = System.Web.HttpUtility.UrlEncode("http://www.bamn.cn:8089/CallBackHandler.aspx", Encoding.UTF8);
            string url = string.Format("https://graph.qq.com/oauth2.0/authorize?client_id={0}&response_type=code&redirect_uri={1}&state={2}","你的appid", callback, state);
            return url;
        }
http://www.bamn.cn:8089/CallBackHandler.aspx 是回执处理地址


组装跳转地址 注意 callback  可以从外面传进来 当然 你可以写到配置文件里面 我这里为了主要是方便测试 所以写死了

callback 就是登陆成功后跳转的页面 注意前面的域名 必须是你申请appid时候 填写的域名下的地址 其他域名是不行的

还有要进行 UrlEncode 编码
state的作用
state是你本地cs里面生成一个随机代码 会随着地址 带到QQ登陆页面 QQ的oauth登陆成功后 会返回来 主要是安全原因 方便你 取得QQ服务器返回来的数据时候 进行对比 以免被木马修改了
那么  通过Response.Redirect(url); 页面会跳转到 QQ互联登陆页面



这一步 我们实现了跳转到QQ互联页面
下一步 我们来处理登陆成功后返回来的时候我们的回执处理页面进行处理 由于我们在GetAuthCodeUrl方法里设置了跳转地址,所以成功认证后会跳转CallBackHandler.aspx页面  
所以 在该页面里面我们可以进行 下一步的处理

这集就先讲到这里....
原文地址:https://www.cnblogs.com/maijin/p/4625286.html