2017-08-30 94 views
0

当使用Android与Chrome,Chrome与Chrome,Macbook与Safari一切正常。问题只在于iPhone。iPhone没有通过隐式验证从Instagram API接收令牌

通常我会得到这样的回应:

http://redirecturl.com/#access_token=ACCESS_TOKEN

与iPhone我只得到:

http://redirecturl.com/

我需要用JavaScript来访问#值,所以我使用:

location.hash 

我也曾尝试以下,以获得完整的地址:

location.href 

但没有一个让我通过的Instagram提供的哈希值。

Instagram没有响应#access_token,或者“聪明的”iPhone在收到响应时全部鞭打。

回答

0

有两种方法可以获得一个:服务器端或客户端。第二个选项(称为隐式身份验证)只能在客户端设置中启用隐式OAuth时使用。(管理客户端>编辑客户端>安全>禁用隐式OAuth)

默认情况下它是禁用的。

在这两种情况下,您都需要将用户重定向到授权URL以获取访问令牌。 显式模式的网址: - 服务器端API Link

隐模式的网址: - 客户端API Link

在这之后,你将被重定向到重定向-URI,这将传递一个参数。对于显式模式,这将是一个查询字符串代码,而对于隐性模式,您将令牌直接获得一个哈希访问:

your-redirect-uri?code=CODE 
your-redirect-uri#access_token=ACCESS-TOKEN 

对于隐式模式,你就可以得到从window.location.hash访问令牌在Javascript中。

+0

这里是你可以参考文档: - https://www.instagram.com/developer/authentication/ –

+0

这正是什么不工作window.location.hash,只与iPhone –