Articles of oauth

刷新Google API令牌以保持用户login状态

我正在开发一个使用Google日历的Google操作应用程序。 在用户第一次互动开始时,系统会提示他们链接其Google帐户以访问日历。 但是对于几乎每个将来的交互,用户都必须再次进行authentication。 我的代码从用户数据获取访问令牌如下。 我不确定是否有办法将刷新令牌添加到凭据中。 我已经看到你应该在其他答案的请求中包含"access_type": "offline" ,但是我不确定将它放在我的代码中。 任何帮助将不胜感激! const googleAuth = require('google-auth-library'); function getAuth(app) { var accessToken = app.getUser().accessToken; var clientId = CLIENT_ID; var clientSecret = CLIENT_SECRET; var redirectUrl = 'https://oauth-redirect.googleusercontent.com/r/my_app_name'; var auth = new googleAuth(); var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl); var token = { "access_token": accessToken, "refresh_token": "", "access_type": "offline", //Not […]

login使用Twitter

我试图在我的node.js app 使用Twitter实现SingIn 。 首先,我打电话给https://api.twitter.com/oauth/request_token给我oauth_token ,然后打电话给https://api.twitter.com/oauth/authenticate?oauth_token=TWITTER_OAUTH_TOKEN打开一个新窗口这表明用户可以接受这个应用程序signIn。 用户接受后,twitter用oauth_token和oauth_verifier调用一个callback url 。 现在我打电话https://api.twitter.com/oauth/access_token获取access_token 。 我得到access_token就像给定的格式 { oauth_token: 'NEW_TWITTER_OAUTH_TOKEN', oauth_token_secret: 'NEW_TWITTER_OAUTH_TOKEN_SECRET', user_id: 'TWITTER_USER_ID', screen_name: 'TWITTER_SCREEN_NAME', x_auth_expires: '0' } 现在我试图获得更多的用户信息,如user_email, user_pic etc 。 我使用以下参数调用以下API https://api.twitter.com/1.1/account/verify_credentials.json : let hmac = crypto.createHmac('sha1', 'thisIsTest'); hmac.update(uuid.v4()); let hash = hmac.digest('hex'); var profileOauth = { oauth_consumer_key: 'twitter_consumer_key', oauth_nonce: uuid.v4(), oauth_signature_method:'HMAC-SHA1', oauth_signature: hash, oauth_timestamp: Date.parse(new Date()), […]

试图使用nodemailer使用Gmail发送电子邮件,并收到错误:“无法为用户创build新的访问令牌”

我目前有一个设置,使用gmamail中的nodemailer发送邮件。 当我手动创build一个访问令牌(它只持续〜1小时)时,它工作正常。 但是,过了一小时后,我得到了下面的错误。 请注意,在那个小时内,我能够发送电子邮件就好,一切正常。 { Error: Can't create new access token for user at XOAuth2.generateToken (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\xoauth2\index.js:162:33) at XOAuth2.getToken (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\xoauth2\index.js:111:18) at SMTPConnection._handleXOauth2Token (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\smtp-connection\index.js:1421:27) at Immediate.setImmediate (C:\Users\user\My-Projects\***\node_modules\nodemailer\lib\smtp-connection\index.js:1239:45) at runCallback (timers.js:666:20) at tryOnImmediate (timers.js:639:5) at processImmediate [as _immediateCallback] (timers.js:611:5) code: 'EAUTH', command: 'AUTH XOAUTH2' } 我用来发送电子邮件的代码是: var emailMsg = `Name: ${name}\nEmail: ${email}\n\nMessage:\n${msg}`; var transporter = nodemailer.createTransport({ service: 'gmail', […]

实施oauthlogin到salesforce应用程序,但刷新令牌未定义

我正在使用node.js处理AWS Lambda。 我正在使用node-salesforce使用OAuth连接到SF应用程序。 login后我无法获取刷新令牌。 var conn = new sf.Connection({ oauth2 : { clientId : 'XXXXXXXXXXXXXXXXXXXXXXXXXXX', clientSecret : 'XXXXXXXXXXXXXXXX', redirectUri : 'https://localhost/callback' } }); conn.login('Username', 'XXXXXXXXX', function(err, userInfo) { if (err) { return console.error(err); } console.log(userInfo); console.log(conn); }); 在输出中我期待一个未定义的刷新令牌。 我能够得到accessToken,我正在使用它进行进一步的操作。 现在如何更改访问令牌的情况下更改访问令牌。 我已经通过它的文档( https://www.npmjs.com/package/node-salesforce )。 他们使用express.js和redirect到salesforce页面进行授权。 由于这是写在lambda中,所以我不会喜欢在这里使用express.js或redirect授权。 我的问题是如何获得刷新令牌。 有没有办法做到这一点。 如果我做错了,请告诉我。

将状态传递到回送oAuthcallback

我正在开发一个投票在我的网站上。 我只想要授权的用户投票。 所以我使用Facebook OAuthauthentication用户。 我的后端是build立在node.js和使用回环框架。 我正在使用passport-facebook lib执行所有授权的东西。 当用户按下投票button,后端检查用户是否被授权,并保存投票或否则redirect用户login页面。 一切都很好,但现在用户必须在授权后再次按下投票button。 我读到有一种方法可以将状态作为查询parameter passing到OAuthredirectURL。 这可以使用passport.js 完成 。 但是,回环隐藏实现,只提供静态jsonconfiguration。 至less我在docker和回购站里找不到任何提及。 所以我的问题是如何处理? 谢谢你的帮助。

授权问题与节点js请求

我有一个困难的时间进行validation的请求,盟友/报价报价stream。 我正在使用节点JS来提出请求。 我已经尝试了几种方法来提出请求,但为了这个问题的目的,我将使用oauth模块来坚持从他们网站的例子。 我想要做的是console.log(数据),我期望一个股票报价stream 。 相反,我返回401未经授权的。 任何人都可以指出我的方向,以更好地解决这个问题,或提供更正? 这是我的代码和服务器响应: ///码/// var OAuth = require('oauth').OAuth; var credentials = { consumer_key: "xxxxxxxxxxx", consumer_secret: "xxxxxxxxxxx", access_token: "xxxxxxxxxxx", access_secret: "xxxxxxxxxxx" }; var oa = new OAuth(null, null, credentials.consumer_key, credentials.consumer_secret, "1.0", null, "HMAC-SHA1"); var request = oa.get("https://stream.tradeking.com/v1/market/quotes?symbols=AAPL", credentials.access_token, credentials.access_secret); request.on('response', function (response) { response.setEncoding('utf8'); console.log(response.statusCode) console.log(response) }); request.end(); ///响应/// 401 IncomingMessage […]

如何在nodebb论坛中实现单点login?

我们已经使用NodeBB实现了讨论论坛。 NodeBB需要login才能在论坛中开始讨论。 我们面临的问题是NodeBB论坛有自己的login机制。 但我们希望在整个应用程序中进行单点login,因为我们有自己的login和注册机制。 有什么办法可以将用户redirect到NodeBB论坛的现有网站,而不要求他们再次inputlogin信息?

Foursquare API,oauth,HTTP 301

我正在使用nodejs中的foursquare API。 我遵循这里描述的步骤(Web服务器应用程序) 但在最后一步,当我得到的授权码,我得到一个HTTP 301指向相同的url被请求。 我不知道为什么。 我想念什么?

通过Github进行身份validation(使用everyauth)

我正在使用everyauth ,并且无法通过github进行身份validation。 看来,我所遵循的所有步骤都是正确的,但是当单击“connect with github”链接时,它一直告诉我cannot GET /auth/github 。 这是我的代码的要点: https : //gist.github.com/2641260 任何帮助将不胜感激!

查看我自己的Instagram照片?

我想为我的服务器设置一个方法来抓取我所有的Instagram照片并把它们放在网站上。 我试图使用这个lib https://github.com/mckelvey/instagram-node-lib 。 它说我需要作为用户(我)的身份validation来获取照片的饲料。 我可以从服务器以自动方式执行此操作吗? 我不想让我的网站的访问者必须login… 我只是不知道如何让我的网站上的匿名用户自己的饲料。 我不想处理redirect和url,我只想得到我自己的饲料服务器端。 谢谢!