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"); } } }