我需要您的建议和经验。这是我的情况。
现在我的问题是
这是我要返回令牌的控制器操作。我想将令牌设置为Initiate对象。
[HttpPost, Route("initiation")]
public async Task<IHttpActionResult> PostInitiate(InitiateRequest initiate)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
context.InitiatesRequests.Add(initiate);
await context.SaveChangesAsync();
HttpClient httpClient = new HttpClient();
HttpContent content = new StringContent(
JsonConvert.SerializeObject(initiate),
Encoding.UTF8,
"application/json"
);
HttpResponseMessage response =
await httpClient.PostAsync("https://test.com/purchaseinitiation", content);
string htmlResponse = await response.Content.ReadAsStringAsync();
return Ok(htmlResponse);
}
我可以像示例代码中提到的那样,以现有的控制器方法返回生成的令牌吗?有可能吗?
这是我的自定义令牌端点路径,这是我下面的现有控制器操作。
OAuthOptions = new OAuthAuthorizationServerOptions{
TokenEndpointPath = new PathString("/api/v2/pin/initiation"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true};
这是我的控制器,我想在启动器内返回Token。
[RoutePrefix("api/v2/pin")]
public class InitiatesController : ApiController
{
private EPINMiddleWareAPIContext context;
public InitiatesController(EPINMiddleWareAPIContext context)
{
this.context = context;
}
// POST: api/Game
[HttpPost, Route("initiation")]
public async Task<IHttpActionResult> PostInitiate(InitiateRequest initiate)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
注意:提供商A,客户端和我的代理Web API将基于SSL进行通信。
编辑: 我使用了基于令牌的身份验证,并解决了如何在响应中返回令牌。