zoukankan      html  css  js  c++  java
  • 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的主要作用应该是授权,具体还要继续思考。

  • 相关阅读:
    【Android 工具类】经常使用工具类(方法)大全
    driver: Linux设备模型之input子系统具体解释
    ural 1057 Amount of degrees 【数位dp】
    Java8 Lambda表达式教程
    Java线程池
    NodeJS实战——创建基础应用并应用模板引擎
    【网络】代理服务器
    【HTTP】Wireshark过滤规则
    【HTTP】WireShark中获取Content-Encoding: gzip时的响应内容
    【python】判断字符串日期是否有效
  • 原文地址:https://www.cnblogs.com/happyframework/p/3197406.html
Copyright © 2011-2022 走看看