我试图通过IG文档中的示例实现服务器端身份验证,但遇到了麻烦。 当我正在处理我的请求时,我已收到状态为302 Found的响应,而在Headers位置我没有使用代码重新定位网址,但如果我在浏览器中执行同样的操作,那么一切正常。
这是我的代码和示例:
public JsonResult InstagramTeaser()
{
try
{
var clientId = Configuration.AuthKeys.InstagramOAuthClientId;
var clientSecret = Configuration.AuthKeys.InstagramOAuthClientSecret;
var redirectUrl = "http://localhost";
var uri = $"http://api.instagram.com/oauth/authorize/?client_id={clientId}&redirect_uri={redirectUrl}&response_type=code";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.AllowAutoRedirect = false;
string redirUrl = String.Empty;
using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())
{
int status = (int)response.StatusCode; // 302 Found
redirUrl = response.Headers[HttpResponseHeader.Location]; // And here I'm getting my old uri
}
return Json(redirUrl, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(e.Message, JsonRequestBehavior.AllowGet);
}
}
答案 0 :(得分:0)
auth在MVC中的工作方式是,当您还没有登录并尝试时 访问一个安全的页面,它会抛出401异常。然后MVC抓住了这一点 异常并将用户重定向到登录页面(即302) 你看到了)
Here您可以获得有关您问题的更多信息