2015-12-24 35 views
1

我想移动应用和我自己的服务器之间的安全我的HTTP调用之间实现的Oauth。 这样做的最佳方法是什么?我看到oAuth2.0,但无法完全理解它。我们如何在我们的应用程序中使用标记身份验证?有人可以通过解释双方的示例(iOS和Server)来帮助我解决这个问题。我不希望用户认证像我们一样,当我们敲击登录在与谷歌+的时候切换到Safari浏览器并切换到网页等自己的服务器和iPhone应用程序

+0

如果你只是想验证你的应用程序,而不是个人用户则可以使用HMAC – Paulw11

+0

我想要的东西,就像我们发送授权头和值应与会话超时一个有效的访问令牌。像亚马逊AWS,但在我自己的服务器上 –

+0

因此,您正在验证您的应用程序的个人用户? – Paulw11

回答

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"]; 
+0

这是旧的方式,我想我们应该用NSURLSession类 –

0

我想这会帮助你上手,这是一个明确的实施OAuth 2.0以及雨燕,

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

使用谷歌服务因为OAuth提供商(免费的)

提供与已建成的Oauth服务集成

其他库,

https://github.com/oauth-io/oauth-ios - 这是适用于OAuth.io的iOS SDK。 OAuth.io使您可以轻松地将100多个提供商集成到您的Web应用程序中,而无需担心每个提供商的OAuth特定实施。

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

+0

我想它会打开一个网页,以提供访问令牌,我不希望这样的流动 –

+0

OAuth2Client拥有基于浏览器的用户认证和基于证书的OAuth令牌授权之间切换的能力。检查这个lib。 – satheeshwaran

相关问题