2015-12-24 32 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

相關問題