1

我正在尝试在我的 iOS 应用程序中对用户进行身份验证,但我得到的只是400 错误

根据文档“这种类型的流程仅限于批准的应用程序,因此您必须先请求访问

那么我如何批准我的申请才能完成这个流程呢?

我的部分要求:

NSURL *url = [NSURL URLWithString:@"https://disqus.com/api/oauth/2.0/access_token/"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:WS_TIMEOUT];

NSString *strAuth = [NSString stringWithFormat:@"%@:%@", username, password];
NSString *strAuthBase64 = [[strAuth dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];

NSString *postString = [NSString stringWithFormat@"grant_type=password&client_secret=%@&client_id=%@&scope=read,write", DISQUS_SECRET, DISQUS_KEY];

[request addValue:[NSString stringWithFormat:@"Basic %@", strAuthBase64] forHTTPHeaderField:@"Authorization"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

提前致谢。

4

2 回答 2

3

这是我们必须为您的应用程序启用的功能。但是,我建议使用标准服务器端流程托管一个页面来处理身份验证。然后,您可以在用户授权后将访问令牌和其他变量从页面拉到您的应用程序中。

原因是您不必处理表单验证、错误消息,并且可以利用我们对表单的更新而无需接触您的代码。

可以在此页面上找到 PHP 和 Python 中的一些服务器端 OAuth 示例:https ://github.com/disqus/DISQUS-API-Recipes/tree/master/oauth

于 2013-07-25T01:38:19.490 回答
2

试试这个以巧妙的方式解决 Disqus 授权问题的库。非常好的解决方案https://github.com/moqod/disqus-ios

于 2014-02-05T21:20:54.473 回答