Linkedin ios sdk返回错误的数据

时间:2016-06-07 05:06:15

标签: ios objective-c sdk linkedin-api

我在我的ios应用程序中集成了ios sdk。因此,当我单击按钮以使用linkedin进行身份验证时,将显示一个viewcontroller,并显示输入用户名和密码的页面。现在,当我输入正确的用户名和密码时,它会返回一个包含代码和状态的URL。问题是随请求发送的状态(随机字符串)与响应url中收到的状态不同。例如,如果我发送

state = @"qwertyu"

然后返回值是

state = @"qwertyu#!"

额外#!随附。

在代码中,我正在检查发送和接收状态是否相同,因为它不相同我返回错误(这是输入正确的用户名和密码后显示的错误)。如果我删除了if条件,那么它的工作完全正常。

SYLinkedInApplication *app = [SYLinkedInApplication
                              applicationWithRedirectURL:self.redirectUrl
                              clientId:self.appKey
                              clientSecret:self.appSecret
                              state:@"<RANDOM-STRING>"
                              grantedAccess:@[#something];

条件

if ([self.application.state isEqualToString:receivedState]) {
    //if true send success
}

所以我的问题是

1)我们是否需要if条件来检查状态?

2)如果我们需要条件那么为什么返回状态字符串不同?

希望问题很明确。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题(但是使用了Ionic)。

1)是的,您应该检查状态,以防止CSRF

2)这是我在请求授权和访问令牌时更改URL解决的问题:

https://www.linkedin.com/uas/oauth2/authorizationhttps://www.linkedin.com/oauth/v2/authorization

https://www.linkedin.com/uas/oauth2/accessTokenhttps://www.linkedin.com/oauth/v2/accessToken

这解决了我的问题。我希望它也能解决你的问题,或其他人的问题。

相关问题