在自己的服务器和iPhone应用程序之间实现Oauth

时间:2015-12-24 05:47:05

标签: ios iphone asp.net-web-api oauth-2.0 ios9

我希望在移动应用和我自己的服务器之间保护我的http通话。 这样做的最佳方法是什么?我看到了oAuth2.0但却无法完全理解它。我们如何在我们的应用中使用标记化身份验证?有人可以通过双方(iOS和服务器)的示例解释来帮助我。我不希望用户在进行身份验证时切换到safari,就像我们点击使用google +登录并切换到网页等一样。

2 个答案:

答案 0 :(得分:2)

抱歉,我不知道如何在服务器上设置它。 但您可以像这样从应用程序端传递auth用户名和密码。

NSMutableString *loginString = (NSMutableString*)[@"" stringByAppendingFormat:@"%@:%@", AuthUserName, AuthPassword];
NSData *authData  = [loginString dataUsingEncoding:NSUTF8StringEncoding];
NSString *authHeader    = [NSString stringWithFormat:@"Basic %@", [authData base64EncodedStringWithOptions:0]];

NSString *urlString = [url stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest
                                requestWithURL:[NSURL URLWithString:urlString]
                                cachePolicy:NSURLRequestUseProtocolCachePolicy
                                timeoutInterval:DEFAULT_TIMEOUT];

[request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request addValue:authHeader forHTTPHeaderField:@"Authorization"];

答案 1 :(得分:0)

我想这可以帮助你开始,它是使用Swift的Oauth 2.0的明确实现,

http://www.raywenderlich.com/99431/oauth-2-with-swift-tutorial

使用Google服务作为OAuth提供商(免费)

提供与已构建的Oauth服务集成的其他库,

https://github.com/oauth-io/oauth-ios - 这是适用于OAuth.io的iOS SDK。 OAuth.io允许您在Web应用程序中轻松集成100多个提供程序,而无需担心每个提供程序的OAuth特定实现。

https://github.com/nxtbgthng/OAuth2Client - 它实现本机应用程序配置文件,并通过内部或外部用户代理支持最终用户授权端点。此外,它还通过提示最终用户输入用户名和密码来支持用户凭据流,并直接使用它们来获取访问令牌。