Tag: oauth 2.0

跨客户端Google OAuth:在iOS上获取授权码并在服务器上访问令牌

我正在尝试使用iOS应用程序和Rails Web应用程序设置Google OAuth。 我有2个独立的客户端(当然有不同的客户端ID,但有相同的前缀)在API控制台中设置。 一个用于iOS应用程序,另一个用于Web应用程序(也有一个client_secret ,我想用iOS上的AppAuth SDK获取用户的authentication码,然后发送到我的web应用程序,然后执行交换为访问令牌。 首先,这听起来像是一个合理的事情,或者是不可能像这样的客户分割交易? 我第一次尝试只是采取authentication代码,并执行交换,但失败与missing_code_verifier invalid_grant错误,所以我也传递了相同的code_verifier AppAuth用于获得authentication代码到我的服务器,并修复该错误。 首先,是否有必要将这个validation码传递给服务器? 似乎有点奇怪。 但是,现在,它会因为unauthorized_client错误而失败。 我的networking应用程序正在提出这样的要求: { "grant_type"=>"authorization_code", "code"=>"4/XYZ…", "client_id"=>"WEB_APP_CLIENT_ID_HERE.apps.googleusercontent.com", "client_secret"=>"WEB_APP_CLIENT_SECRET_HERE", "redirect_uri"=>"https://www.myapp.com/oauth_callback", "parse"=>"json", "code_verifier"=>"CODE_VERIFIER_STRING_HERE" } 看像这样的post: 无法在Cross Client google oauth2.0中交换访问令牌和刷新令牌的授权代码 Google+login服务器端应用程序,交换身份validation码访问令牌 它看起来像redirect_uri可能是一个问题在这里。 iOS上的我的AppAuthconfiguration将redirectURI设置为com.googleusercontent.apps.iOS_CLIENT_ID_HERE和Info.plist URLscheme。 API控制台中的Web应用程序的“授权redirectURI”部分有一堆url,我也添加了com.google… 这个configuration不正确? 进行跨客户端身份validation时, redirect_uri是否重要? 任何帮助是极大的赞赏! 我所有的反复试验迄今都没有成果:(

如何在Fitbit API集成中使用访问令牌请求 – iOS?

我通过使用OAuth2 – https://github.com/trongdth/OAuth2-for-iOS做了OAuth2,我成功login并得到了回复 { "kOAuth_AccessToken" = "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NDIzODY2NzEsInNjb3BlcyI6Indsb2Mgd3BybyB3bnV0IHdzbGUgd3NldCB3d2VpIHdociB3YWN0IHdzb2MiLCJzdWIiOiIzRFJQQzYiLCJhdWQiOiIyMjlROVEiLCJpc3MiOiJGaXRiaXQiLCJ0eXAiOiJhY2Nlc3NfdG9rZW4iLCJpYXQiOjE0NDIzODMwNzF9.5vTYvUAuvMflnOw_7cc1nZoighhtUx4RU26-Q7SewzQ"; "kOAuth_AuthorizeURL" = "https://www.fitbit.com/oauth2/authorize"; "kOAuth_Callback" = "http://oauth-callback/fitbit"; "kOAuth_ClientId" = string; "kOAuth_ExpiredDate" = ""; "kOAuth_RefreshToken" = 97ad2a073f40f21974c8d27cdb74523047f39e98cd2adcfd6f6cc3eb92522d53; "kOAuth_Scope" = "activity heartrate location nutrition profile settings sleep social weight"; "kOAuth_Secret" = string; "kOAuth_TokenURL" = "https://api.fitbit.com/oauth2/token"; } 这里 – 我怎样才能获得callbackURI中的code URI参数值? 根据Fitbit doc的— 访问令牌请求: –当用户在授权代码授权stream程中授权您的应用程序时,您的应用程序必须交换访问令牌的授权代码。 该代码只有10分钟有效。 授权标题 : – 授权标头应设置为基本,后跟一个空格和一个Base64编码的应用程序的客户端ID和密码string与冒号连接。 我通过使用AFNetworking库来做到这一点,请看代码(header) – […]

适用于iOS的Google Drive API:具有应用程序所有帐户的OAuth2.0

我正在创build一个简单的iPhone应用程序。 基本的前提是,应用程序将显示一些数据(我在线提供)的应用程序。 数据随着时间而改变,所以应用程序必须从在线绘制数据并显示它。 我没有重要的编程背景,所以我不想使用自己的服务器。 因此,我认为只要将数据放入Google帐户的某些文档中,然后通过Google Drive API以编程方式访问这些文档就会更加容易。 然后,我可以更新我的云端硬盘帐户中的数据,并在应用程序中进行更新。 这里的关键是我只能访问我拥有自己的一个账户。 用户的账户没有被访问。 因此,我们的目标是永远不必手动login。 它应该都发生在幕后,也就是说,它应该看起来像一个服务器,而不是一个谷歌文档。 考虑到这一点,向我的用户显示Google帐户login页面是没有意义的,因为标准OAuth2.0教程显示在这里: https : //developers.google.com/drive/quickstart-ios#step_1_enable_the_drive_api 我应该能够以我的用户名,密码等硬编码的方式访问我自己的数据。Google同意这里: https : //developers.google.com/drive/service-accounts#use_regular_google_accounts_as_application-owned_accounts 上面的链接提到了我应该保存的“更新令牌”。 但是,我不知道如何构build和保存这个令牌,甚至不知道在哪里可以find它。 我已经阅读了基本教程和iOS编辑教程,但是他们都假定应用程序访问的是用户账户而不是应用程序所有的账户。 我并不是要求某人为我编写代码(尽pipe花絮很棒),但是如果你能指点我一步一步的指南或者相关的示例代码,那将会帮助我开始,那真是太棒了。 我甚至会回来发布我使用的代码! 编辑:因为我意识到,Google Drive API不是我可以用来做什么,我最终发现parsing这是一个真棒工具,为我处理所有的服务器后端,是免费的基本水平。

oAuth Instagramlogin

我试图从Instagram使用oAuth 2获取访问令牌,以在范围中使用它。 我不明白我应该如何configuration“redirect_uri”(尝试了很多组合),如果我在本地应用程序中使用它,这意味着我不需要任何网站redirect,我需要redirect到应用程序本身,login后(也许我解释不正确的东西,因为不明白如何redirect_uri在本地应用程序工作) 在AppDelegate.swift补充说: func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { if (url.host == "oauth-callback") { OAuthSwift.handleOpenURL(url) } return true } 在ViewController.swift中 : import UIKit import OAuthSwift class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let oauthswift = OAuth2Swift( consumerKey: "cc6dd7ca50c74f4f92a1a8328c9d4426", consumerSecret: "74f6bf3c839b4e15a747a332d#######", authorizeUrl: "https://api.instagram.com/oauth/authorize", responseType: "token" ) […]

为什么在尝试loginBox时遇到redirectURI不匹配?

当使用iOS的Box SDK执行OAuth时,我显示一个网页,显示此错误: 错误:redirect_uri_mismatch response_type = code redirect_uri = boxsdk-our4iypzazstfpx8j70e8tlc3eyn9c4l:// boxsdkoauth2redirect state = ok client_id = our4izzstfpx8j70e8tlc3eyn9c4l 我用他们build议的代码: [self presentViewController:[[BoxAuthorizationViewController alloc] initWithAuthorizationURL:[[BoxSDK sharedSDK].OAuth2Session authorizeURL] redirectURI:nil ] animated:YES completion:nil ]; 我的客户端ID和客户端密码在此之前设置。 在我的info.plist文件中,我有boxsdk-our4iypzazstfpx8j70e8tlc3eyn9c4l作为URLscheme。 我无法遵循的唯一指示是: 注意:在Box上设置服务时,请将OAuth2redirectURI留空。 发出OAuth2调用时,SDK将提供自定义redirectURI; 这样做需要在您的服务设置中不设置redirectURI。 当我试图离开redirect的URI空白,并保存在开发者控制台的forms,我得到这个错误: OAuth2redirecturl必须指定有效的url,且不得为http:// 所以我被迫input了一些东西。 我input“ https://mydomain.com ”(与我的真实域)。 我修改了iOS代码以将该URI传递给BoxAuthorizationViewController,但是我仍然得到相同的错误网页。

Google跨客户端身份validation是否可以在iOS上使用,如果是这样的话,如何?

我正在使用oAuth2,并且在我的google API控制台中有一个iOS客户端和一个Web客户端注册的项目。 我想从我的iOS应用程序进行身份validation,并让我的Web后端检索访问令牌,以便使用Google API执行繁重的处理工作。 我试过按照以下这些针对android的说明: https : //developers.google.com/accounts/docs/CrossClientAuth 但是当我把范围赋值为: oauth2:server:client_id:MY.WEB.CLIENT.ID:api_scope: http : //www.google.com/m8/feeds/ https://mail.google.com/ https://www.googleapis.com/ AUTH / plus.login 任何人都成功实现了类似的iOS设置? 如果是这样,请解释或共享文档? 您使用哪些库或SDK从iOS应用程序获取Google的代码,以便Web后端可以使用它来生成适当的访问令牌?

如何使用AFOAuth2Manager自动刷新过期的标记?

我正在为使用OAuth2保护的服务器编写一个小型的iOS客户端。 我想知道是否有可能使用AFOAuth2Manager [这里]自动刷新过期的标记。 这个想法是,当服务器响应401时刷新客户端的逻辑,或刷新方法返回401时产生错误的逻辑应该是相当常见的,所以可能将其集成到某个库中。

Rails API:使用用户名/密码或Facebook令牌从原生移动应用程序authentication用户

所以我一直拉我的头发了几天,现在试图找出如何添加用户名/密码authentication到我的轨道移动API。 以下是我目前身份validationstream程的简要概述: 用户在移动客户端select“使用Facebooklogin”,客户端redirect到Facebook应用并请求access_token 成功的时候,Facebook使用访问令牌进行响应,客户端redirect到我的应用程序。 客户端将访问令牌发送到我的API 我的API使用考拉gem来检查访问令牌是否有效。 如果令牌有效,则Facebook将用户数据发送到创build新用户的API。 如果用户已经存在,我的API会发送用户数据。 我的API在第4步中处理访问令牌,如下所示: def self.authenticate_user_from_facebook(fb_access_token) user = User.new graph = Koala::Facebook::API.new(fb_access_token) profile = graph.get_object('me') #user['fb_id'] = profile['id'] #user['fb_token'] = fb_access_token # Generate user hash uhash = Hash.new uhash['provider'] = 'facebook' uhash['uid'] = profile['id'] uhash['info'] = Hash.new uhash['info']['nickname'] = profile['username'] uhash['info']['name'] = profile['name'] uhash['info']['email'] = profile['email'] uhash['info']['first_name'] = profile['first_name'] uhash['info']['last_name'] […]

AFOAuth2Client和刷新令牌

如何在iPad应用程序中实现Oauth? AFOAuth2Client如何pipe理oauth 2.0中的刷新令牌机制? 有没有什么方法可以在课堂上实现,还是我们必须以自己的方式来实现呢? 如何检查令牌是否过期?

如何使用OAuth2Swift获取Instagram的access_token

我尝试了所有可能的选项,但redirectURI不返回access_token 。 我添加了一个callbackURI,我可以从用户请求login并授予访问权限,但在callback中出现此错误。 我在开发者门户网站上注册了这个URI,它似乎正常工作: http://oauthswift.herokuapp.com/callback/instagram 当我尝试使用以下方式在Web浏览器上进行身份validation时: https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=http://oauthswift.herokuapp.com/callback/instagram&response_type=token 我得到访问令牌: 当我尝试使用OAuthSwift ,我得到这个错误,redirectURI不包括access_token ,尽pipeDocs说: 这是错误的: serverError [没有access_token,没有代码,服务器没有提供错误] 这是我的代码如下: // MARK: Instagram func doOAuthInstagram(_ serviceParameters: [String:String]){ let oauthswift = OAuth2Swift( consumerKey: serviceParameters["consumerKey"]!, consumerSecret: serviceParameters["consumerSecret"]!, authorizeUrl: "https://api.instagram.com/oauth/authorize", responseType: "token" ) let state = generateState(withLength: 20) self.oauthswift = oauthswift oauthswift.authorizeURLHandler = getURLHandler() let _ = oauthswift.authorize( withCallbackURL: URL(string: "http://oauthswift.herokuapp.com/callback/instagram")!, scope: "likes+comments", […]