OAuth:第一天学习OAuth

收集的一些资料

http://baike.baidu.com/view/3948029.htm

http://oauth.net/

使用百度的OAuth服务进行测试

代码下载:http://yunpan.cn/QtNuCR9I4jDz8。

html代码

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="OAuthoStudy.Index" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9     <script src="Javascript/Ext/ext-all-debug.js"></script>
10 </head>
11 <body>
12     <form id="form1" runat="server">
13         <div>
14             <button id="GetCode">获取授权码</button>
15              授权码:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
16             <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="获取用户信息" />
17         </div>
18     </form>
19 </body>
20 </html>
21 <script type="text/javascript">
22     Ext.get('GetCode').on('click', function (e) {
23         var url = 'https://openapi.baidu.com/oauth/2.0/authorize';
24         var params = {
25             response_type: 'code',
26             client_id: 'hdFhQoUiu9GdeqBzPStXf9li',
27             redirect_uri: 'oob',
28             scope: 'basic',
29             state: '段光伟',
30             display: 'page'
31         };
32 
33         window.open(url + '?' + Ext.urlEncode(params), '_blank', "width=800,height=600");
34 
35         e.stopEvent();
36     });
37 </script>

后台代码

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 using System.IO;
 8 using System.Net;
 9 using Newtonsoft.Json;
10 
11 namespace OAuthoStudy
12 {
13     public partial class Index : System.Web.UI.Page
14     {
15         protected void Button1_Click(object sender, EventArgs e)
16         {
17             var access_token = this.GetAccessToken();
18             WebRequest request = WebRequest.Create("https://openapi.baidu.com/rest/2.0/passport/users/getInfo?access_token=" + access_token);
19 
20             var response = request.GetResponse();
21             StreamReader sr = new StreamReader(response.GetResponseStream());
22             dynamic data = JsonConvert.DeserializeObject(sr.ReadToEnd());
23 
24             this.Response.Write("欢迎您:" + data.username);
25         }
26 
27         private string GetAccessToken()
28         {
29             WebRequest request = WebRequest.Create("https://openapi.baidu.com/oauth/2.0/token?client_id=hdFhQoUiu9GdeqBzPStXf9li&client_secret=NLzxHLzbWn2XGZrQbsfuG3lBYX5tcBHZ&grant_type=authorization_code&code=" + this.TextBox1.Text + "&redirect_uri=oob");
30 
31             var response = request.GetResponse();
32             StreamReader sr = new StreamReader(response.GetResponseStream());
33             dynamic data = JsonConvert.DeserializeObject(sr.ReadToEnd());
34 
35             return data.access_token.ToString();
36         }
37     }
38 }

 运行效果

备注

OAuth的主要作用应该是授权,具体还要继续思考。

 

posted on 2013-07-16 09:09  幸福框架  阅读(1447)  评论(1编辑  收藏  举报

导航

我要啦免费统计