我创建了一个Instagram应用程序。用户可以进行身份验证,然后列出他们上传的图像。
不幸的是,身份验证过程需要重定向,我希望在没有重定向的情况下执行此操作。
有可能吗?
答案 0 :(得分:1)
您不一定要重定向(在传统意义上)!
发出初始请求后,例如
std::forward
Instagram确实通过302重定向到https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code
中指定的网址进行回复,并且该URI会在redirect_uri
或code
参数后追加到该参数,具体取决于您正在使用的流程(由原始access_token
参数指定)
如果您的网络客户端能够在重启之前拦截重定向请求,您可以收集代码'或者' access_token'来自重定向网址的参数,并根据需要继续。
例如:对于iOS,有一个UIWebView委托方法" shouldStartLoadWithRequest"您可以使用它来检查重定向URI并在加载之前取消实际请求。由于重定向URI具有您之后的内容,因此您基本上可以将任何进一步的处理委托给后台线程(或其他任何内容),并随意继续。
答案 1 :(得分:0)
不,它不可能,您必须使用Oauth登录并获取access_token
,这只是一次,您可以存储access_token
并使用它来进行API调用,如果它失败了无效access_token
,那么您已要求用户重新登录并获得更新access_token
答案 2 :(得分:0)
Instagram API使用OAuth 2.0,请记住,所有对API的请求都必须通过SSL(https://)进行。
重定向uri指定用户在选择是否对您的应用程序进行身份验证后重定向的位置。需要此uri来捕获API响应。
您有两种身份验证方式:
1 服务器侧强>
将您的用户定向到授权网址。
用户授权您的应用程序后,Instagram会使用代码参数重定向到您的重定向uri,以获取用户令牌。
请求用户访问令牌:
现在,您需要将您在上一步中收到的代码交换为访问令牌。您必须发布此代码以及一些应用识别参数。
如果成功,此调用将返回OAuth令牌。
2的客户端强>
将您的用户定向到授权网址。
通过以下网址接收访问令牌:
一旦用户通过身份验证然后授权您的应用程序,Instagram就会使用url片段中的访问令牌重定向到您的重定向uri。
Instagram信息:https://www.instagram.com/developer/authentication/