Reputation: 31
I am working on Github api Oauth. The main problem is to match callback URl with method in Web Api
[HttpGet]
[Route("api/values/callback/{code}&{state}")]
public JsonResult Get (string code, string state)
{
var s = User.Claims;
return new JsonResult(s);
}
In StartUp file:
options.CallbackPath = new PathString("/api/values/callback/");
Redirect in URL that should match an action in service
http://localhost:5000/api/values/callback/?code=b1b0659f6e0&state=CfDJ8Ir-xT
So, I can not build rout which has pattern /?param1¶m2
Here is redirect URL that should match :
Would be glad for help :)
Upvotes: 2
Views: 724
Reputation: 306
If you're using OidClient you can use the following to inject the service to the method and get the querystring to process.
// route method here
public async Task<ActionResult> ProcessCallback([FromServices] HttpListenerRequest request){
...
// generate the options using `OidcClientOptions`
var client = new OidcClient(options);
var result = await client.ProcessResponseAsync(request.QueryString.ToString(), null);
...
}
Upvotes: 0
Reputation: 4022
You can use [FromQuery]
to get values from the query string.
[HttpGet]
[Route("api/values/callback")]
public JsonResult Get([FromQuery]string code, string state)
{
string s = "code:" + code + " state:" + state;
return new JsonResult(s);
}
Test
Upvotes: 2
Reputation: 183
I would suggest to edit the route to api/values/callback/code={code}&state={state} .
Upvotes: -1