Tag: oauth

Google Play Android开发人员API 401权限不足

我使用Google Play Android开发人员API服务器来检查用户订阅的订阅状态,但成功授权并询问现有订阅后,我收到401响应,并显示以下消息:“当前用户没有足够的权限执行请求操作“。 访问https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=XXXXXX我可以看到我有请求的范围( https://www.googleapis.com/auth/androidpublisher ),但我仍然得到每次都有同样的反应。 其他人有没有同样的问题? 编辑:我已经看到了什么浏览API应用程序,它添加了请求的查询string中的键,但我没有这个值。 在控制台中,我创build了一个服务帐户客户端ID,它具有一个客户端ID,电子邮件地址和一个私钥,但没有明显的API使用的API密钥。 编辑号码 2:我已经将服务帐户生成的电子邮件添加到Google Play开发者控制台和Google电子钱包控制台,但我仍然没有权限。 我正在使用nodejs和google-oauth-jwt,因为没有为nodejs提供的lib。 这里是我用来提出请求的代码: var request = require('google-oauth-jwt').requestWithJWT(); function makeReq() { request({ url: 'https://www.googleapis.com/androidpublisher/v1.1/applications/{packageName}/subscriptions/{subscriptionId}/purchases/{purchaseToken}', jwt: { // use the email address of the service account, as seen in the API console email: 'blahblahtrutjtrutj@developer.gserviceaccount.com', // use the PEM file we generated from the downloaded key keyFile: […]

LTI使用Node.js启动身份validation

我使用express.js框架创build了一个简单的“hello-world”web应用程序。 我希望应用程序符合IMS-LTI标准,以便moodle和其他学习pipe理系统可以将其作为外部工具启动。 但是,我不明白如何在我的应用程序(它使用oauth)来validationLTI启动,而且我也找不到任何express.js / node.js的例子。 我发现存在passport-lti节点模块( https://www.npmjs.org/package/passport-lti ),但作为节点的noob只是不理解稀疏的文档。 我已经使用passport.js创build本地身份validation – 使用此video( https://www.youtube.com/watch?v=twav6O53zIQ ),我希望为LTI启动身份validation类似的帮助… 任何帮助表示赞赏。 干杯,奥利

错误或规格更改(Twitter API 1.1)

在我的节点应用程序项目中,我将Twitter API从v1.0迁移到了v1.1。 我在日志文件中发现了一些错误。 错误 {"message":"Could not authenticate you","code":32} 原因 如果发布数据(1.1 /状态/更新)包括… ! “ ( ) * 解 我修补了node-oauth的node_modules / oauth / lib / oauth.js(只使用了node-twitter)… 从 327 if( (method == "POST" || method == "PUT") && ( post_body == null && extra_params != null) ) { 328 post_body= querystring.stringify(extra_params); 329 } 至 327 if( (method == […]

叽叽喳喳request_token端点总是返回“无法validation你”

我正在写一个简单的twitterlogin,并尝试获取请求令牌,以redirect用户访问令牌,但我总是以couldn't authenticate you错误,我试图添加签名作为最后的头,它不工作了。 当我删除一些头我得到错误的authentication数据错误,所以这个configuration我认为一切都是正确的我只是不能确定我做错了什么,叽叽喳喳拒绝发回请求令牌。 这是我的代码 'use strict'; const https = require("https"); const cfg = require('./config'); // const cfg=require(`${__dirname}/config`); const qs = require("querystring"); const esc = qs.escape; const crypto = require('crypto'); const HMAC = crypto.createHmac; class twitter { constructor(o) { // if (!o || !o.consumer_key || !o.consumer_secret) throw new Error("Missing Paramaters"); this.id = o.consumer_key; this.secret = […]

从passportjs中的刷新令牌获取oauth访问令牌

要确定何时使用刷新令牌来请求新的访问令牌,我知道两种方法(下面)。 无需修改passport-google-oauth库,这两种方法都可行吗? 1)“先发制人”的方法 保存授权后的访问令牌的到期时间 每当使用访问令牌访问API时,请根据当前时间检查到期时间 如果访问令牌没有过期,请使用它来访问API 如果访问令牌已过期(或接近过期),请提供刷新令牌以获取新的访问令牌 2)“处理失败”方法 始终提供访问令牌 如果访问令牌未通过身份validation,请提供刷新令牌,以获取新的访问令牌 谢谢。 也欢迎任何替代品。

使用dropboxjs用oauthauthentication客户端2.服务器呢?

我是Oauth和服务器端的新手,所以请耐心等待。 我有一个web应用程序,用dropbox-jsvalidation用户。 一切都很简单。 应用程序使用dropbox-js的client.authenticate函数,如果用户通过身份validation,应用程序会自动redirect到初始页面,在那里执行身份validationcallback。 从那一刻起,我知道我很高兴地使用Dropbox进行身份validation,并且可以使用应用程序的Dropbox目录进行操作。 我有一个公共node.js服务器,目前什么都不做。 我想要做的是: 一旦客户端通过身份validation,请致电我的服务器,并告诉用户已通过身份validation 如果用户不存在于服务器数据库中,则为其创build用户数据库的条目(我不需要详细说明来执行此操作)。 如果存在,则发回用户的相关数据。 我怎样才能以安全的方式做到这一点? 我的意思是,服务器如何告诉用户是一个有效的Dropbox用户? 服务器是否应该使用用户凭证对Dropbox进行身份validation? 这些情况下的工作stream程是什么?

使用Facebook和Passportjs进行身份validation:什么是accessToken,注册后应该存储什么?

我正在使用Passport来注册/使用Facebook进行身份validation。 oAuth成功的时候,我回来了: accessToken refreshToken profile 现在…当用户成功注册使用Facebook,我存储accessToken和profile信息。 当有人想要login,并再次通过oauth动作,我的应用程序再次获取accessToken和profile 。 麻烦的是, accessToken是不同的。 我真的希望accessToken是第一次validation后是相同的… 在这一点上,我连接我自己的本地用户与configuration文件中的Facebook的id字段。 但是…我怎么实际上使用accessToken? 保持它是否有意义? 如果是这样,为什么我会保留它? 我实际上期望accessToken是相同的,并使用它来匹配成功的login。 我显然不能这样做…所以我很困惑!

使用API​​创buildGoogle日历事件不会创build环聊链接

迄今为止,我一直在成功破解googleapis和gapitoken包,以通过API在Google日历上创build活动。 所有这一切的目的是find一种方法来编程生成一个谷歌环聊链接,你不能通过API,据我所知。 根据这篇文章 ,你应该能够在创build事件时启用自动创build环聊链接,这是我为帐户所做的。 我使用的代码只能从Node.js运行,所以不存在面向用户的部分。 我正在使用服务帐户技术通过OAuth2.0进行身份validation。 一切似乎工作正常,除了创build的事件不包含名为“hangoutLink”的属性。 有任何想法吗? var moment = require('moment'); var googleapis = require('googleapis'); var GoogleToken = require('gapitoken'); var OAuth2Client = googleapis.OAuth2Client; var token = new GoogleToken({ iss: '*******************@developer.gserviceaccount.com', scope: 'https://www.googleapis.com/auth/calendar', keyFile: './*****************.pem' }, function (err) { if (err) { return console.log(err); } token.getToken(function (err, token) { if (err) { return console.log(err); } […]

如何用Oauth请求提交和处理请求参数?

我正在使用MeanJS堆栈来开发一个Web应用程序。 我遇到的问题是,我的常规注册过程有一些Oauth用户configuration文件不常见的独特参数。 所以,当我有用户去注册Facebook的时候,我把它们移动到一个新的registry单上,让他们填写额外的参数,然后点击“用facebook注册”。 这些路由与在这里find的常见MeanJS路由相同: https : //github.com/meanjs/mean/blob/master/app/routes/users.server.routes.js 具体来说这些行: app.route('/auth/facebook').get(passport.authenticate('facebook', { scope: ['email'] })); app.route('/auth/facebook/callback').get(users.oauthCallback('facebook')); 我想要做的是有额外的参数附加到请求对象,所以当auth进程到达exports.saveOAuthUserProfile里面: https : //github.com/meanjs/mean/blob/master/app/ controllers / users / users.authentication.server.controller.js这个函数将能够访问这些参数并将它们保存为用户模型的一部分。 我已经尝试将参数附加到获取请求和访问 req.params.paramId 但这是行不通的,因为你不能注册一个param加载的请求与Facebook的API(或至less它似乎是这样)。 而且我在StackOverflow的其他地方读过,你可以加载请求状态,但对我来说这似乎很奇怪。 以下是该链接: Facebook OAuth:自定义callback_uri参数 因此,有关如何将额外数据加载到Oauth请求的指导,以便在保存用户configuration文件时,我可以访问并保存它,这将是非常棒的。 多谢你们。

Instapaper API&Javascript XAuth

我今天大部分时间都在尝试实现Instapaper的XAuth API。 我甚至还没有得到一个oauth令牌。 任何想法我做错了什么? 我正在使用node.js和oauth模块。 这是我的理解,我需要通过用户名,密码,AMD模式作为额外的参数。 oauth模块应该处理所有的oauth参数。 但事实并非如此。 代码如下: var OAuth = require('oauth').OAuth; var oauth = new OAuth( '', 'https://www.instapaper.com/api/1/oauth/access_token', 'CONSUMER_KEY', 'CONSUMER_SECRET', '1.0', null, 'HMAC-SHA1', null ); var extra = { 'x_auth_username': 'USERNAME', 'x_auth_password': 'PASSWORD', 'x_auth_mode': 'client_auth' }; var hello = oauth._prepareParameters('', '', 'POST', 'https://www.instapaper.com/api/1/oauth/access_token', null); var url = 'https://www.instapaper.com/api/1/oauth/access_token'; var f = true; for […]