You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using OAuth2Study.Model.OAuth2;
namespace OAuth2Study.OAuthServer.Controllers
{
[RoutePrefix("api/OAuth2")]
public class OAuth2Controller : ApiController
{
[Route("GetAuthCode")]
[HttpGet]
public IHttpActionResult GetAuthCode([FromUri]RequestGrantInfo requestGrantInfo)
{
//1 检查输入
//2 生成Code
var code = GetCode();
//3 返回
var back_url = requestGrantInfo.redirect_uri + "?code=" + code + "&state=" + requestGrantInfo.state;
return Redirect(back_url);
}
[Route("GetAccessToken")]
public dynamic GetAccessToken(string grant_type, string code, string redirect_uri,string client_id)
{
//1 检查输入
//2 生成AccessToken
var accessToken = GetAccessToken();
var refreshToken = GetAccessToken();
//3 存储
var reslut = new
{
access_token = GetAccessToken(),
token_type = "mac",
expires_in = 7200,
refresh_token = GetAccessToken(),
scope="publick",
};
//4 返回
return reslut;
}
private string GetCode()
{
Random random = new Random(Guid.NewGuid().GetHashCode());
return random.Next(100000, 999999).ToString();
}
private string GetAccessToken()
{
return Guid.NewGuid().ToString("N");
}
}
}