C# .net Core web Api 获取请求#参数
C# .net Core web Api Get request # parameter
我通过 oauth.vk.com
Docs here
使用授权
当我在网络浏览器上调用时
https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=http://example.com/callback&scope=friends&response_type=token&v=5.80
在我登录 vk.com
并接受对我的服务器的权限后 vk.com
发送 Get
请求,如下所示:
http://example.com/callback#access_token=c9186f0de67865740b9bd920a67320142434422007d16cf79031734fd450657cd4ba221106ce7232e74b7&expires_in=86400&user_id=1&email=example@mail.com
我不知道如何在我的 Get 方法中获取#access_token
参数与?像 expires_in、user_id 和我可以这样接收的电子邮件
[Route("vkauth")]
public class VKAuthController : Controller {
[HttpGet]
public string Get_VkAuth([FromQuery] string access_token, string expires_in, string user_id, string email) {
}
但是如何取参数#access_token?
只需在函数中使用 HttpRequestMessage 并通过 header 提取令牌(如果令牌是使用 headers: 授权发送的)
例如:
public string Get_VkAuth(HttpRequestMessage request,[FromQuery] string access_token, string expires_in, string user_id, string email) {
String access_token= request.Headers.Authorization.ToString();
}
评论中的正确答案
Nothing after the # reaches the server. You are attempting to use a a
client-side implementation in server-side code. That's the first
signal you are not doing it correctly
我通过 oauth.vk.com
Docs here
当我在网络浏览器上调用时
https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=http://example.com/callback&scope=friends&response_type=token&v=5.80
在我登录 vk.com
并接受对我的服务器的权限后 vk.com
发送 Get
请求,如下所示:
http://example.com/callback#access_token=c9186f0de67865740b9bd920a67320142434422007d16cf79031734fd450657cd4ba221106ce7232e74b7&expires_in=86400&user_id=1&email=example@mail.com
我不知道如何在我的 Get 方法中获取#access_token
参数与?像 expires_in、user_id 和我可以这样接收的电子邮件
[Route("vkauth")]
public class VKAuthController : Controller {
[HttpGet]
public string Get_VkAuth([FromQuery] string access_token, string expires_in, string user_id, string email) {
}
但是如何取参数#access_token?
只需在函数中使用 HttpRequestMessage 并通过 header 提取令牌(如果令牌是使用 headers: 授权发送的)
例如:
public string Get_VkAuth(HttpRequestMessage request,[FromQuery] string access_token, string expires_in, string user_id, string email) {
String access_token= request.Headers.Authorization.ToString();
}
Nothing after the # reaches the server. You are attempting to use a a client-side implementation in server-side code. That's the first signal you are not doing it correctly