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