Articles of oauth

如何强制Angular在HTML5模式下向服务器发送请求?

我正在使用angular和nodejs来构build和web。 我在/homepath中加载Angular,其中/包含login和registry单。 这是我的angular度configuration: window.app.config(['$routeProvider', '$locationProvider', function($routeProvider,$locationProvider) { $locationProvider.html5Mode(true); $locationProvider.hashPrefix('!'); $routeProvider. when('/profile', { templateUrl: '/views/account.html', }). when('/edit', { templateUrl: '/views/edit.html', }). when('/home', { templateUrl: 'views/index.html' }). when('/signout', { templateUrl: 'views/signout.html' //on this view i load a controller which submits a form to /signout }). otherwise({ redirectTo: '/home' }); } ]); 在服务器端路由: app.get('/',function(){ res.render('index',{ user: req.user? req.user:'guest' […]

loginTwitter OAuth没有会话aka token_secret(AngularJS失败)

这是来自angularjs卫星例子的一条快速路线,实现了3条腿的OAuth与Twitter: /* |————————————————————————– | Login with Twitter |————————————————————————– */ app.get('/auth/twitter', function(req, res) { var requestTokenUrl = 'https://api.twitter.com/oauth/request_token'; var accessTokenUrl = 'https://api.twitter.com/oauth/access_token'; var authenticateUrl = 'https://api.twitter.com/oauth/authenticate'; if (!req.query.oauth_token || !req.query.oauth_verifier) { var requestTokenOauth = { consumer_key: config.TWITTER_KEY, consumer_secret: config.TWITTER_SECRET, callback: config.TWITTER_CALLBACK }; // Step 1. Obtain request token for the authorization popup. request.post({ url: requestTokenUrl, oauth: […]

passport-facebook-token返回InternalOAuthError:validation令牌时无法获取用户configuration文件

我有一个iOS应用程序,我使用Facebook APIlogin,我得到一个访问令牌作为回应。 现在我想使用这个令牌来validation我的后端服务器上的用户。 我使用Passport.js的passport-facebook-token策略。 var FacebookTokenStrategy = require('passport-facebook-token'); module.exports = function(app) { app.use(passport.initialize()); app.use(passport.session()); passport.use(new FacebookTokenStrategy({ clientID: '32424222424024', clientSecret: '3292e42148264c2817523232446187', callbackURL: "http://localhost:3000/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { User.findOne({ facebookId: profile.id }, function (err, user) { console.log("facebook"); return done(err, user); }); } )); app.get('/auth/facebook', passport.authenticate('facebook-token'), function (req, res) { res.send(req.user? 200 : 401); } ); […]

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。 我显然不能这样做…所以我很困惑!