我使用Loopback API时遇到安全问题。 问题是Access Token可以通过查询URL / Header访问。 我可以隐藏访问令牌,当我调用Loopback API或者是否有任何设置,我可以把身体与POSTfunction的访问令牌? 谢谢。
我目前使用OAuth 2.0来访问Google API。 从我的理解,我应该使用返回的刷新令牌来更新访问令牌。 是否应该在刷新到期之前刷新,或者当用户使用已过期的访问令牌从API请求数据? 如果它应该在到期之前完成,我应该只是运行一个cron工作来更新过期的令牌吗? 我使用node.js和mongodb,如果这对推荐的解决scheme有任何影响。 非常感谢!
尝试在60分钟限制后刷新访问令牌。 运行本地节点服务器。 为了给出上下文,我已经成功地从spotifyauthentication端点返回了以下数据。 目前存储会话在NSUserdefaults,不知道如果我必须将刷新令牌存储在另一个位置.. Swap: tokenData { access_token: 'BQAzWk7KjBMtKLzuVtpstw0XWmRww6zs2j6TxoObMRh4P-cxW6SHQqnZWeBD9bE38Xz6ZUNlFdG-EVeTtHwgoRwA9GAqaooaQP5k4gFkEVCbhLcdGVc_IZjO1JH91FmB2O-l-YHeJqC9DzUIF7wWWCGfAxk2SJ2QFNkP4Mp13PXc9IlsnHnu-B9nfZaWYDoHDf4', token_type: 'Bearer', expires_in: 3600, refresh_token: 'AQDmPiRX9WGwShK9aIVybZlG1qJyv0avmgZedUwfvz0hGGo5dheMKSpteVRCIItzt_l4gIflHPnFzLrxLmZNKSserU7ng8_3sSJPhdsibdskjbdkjbdkUDrOC4ZbEGPWNcJlmZgl4A' } 当会话在Xcode中过期时,我在XCode中触发这个函数 if !session.isValid() { SPTAuth.defaultInstance().renewSession(session, withServiceEndpointAtURL: NSURL(string: tokenRefreshServiceURL), callback: { (error:NSError!, renewedsession:SPTSession!) 哪个指向这个.. app.post("/refresh", function(req,res){ console.log(req.body); if(!req.body || !req.body.hasOwnProperty("refresh_token")) { res.status(550).send("Permission Denied"); //THE BODY DOES NOT CONTAIN THE REFRESH TOKEN return; } var encryptedToken = new Buffer(req.body.refresh_token, 'base64');//switched the […]
我需要在我的node.js应用程序上构build一个基于令牌的身份validation,用户可以使用他的Facebook或Twitter凭据login我的应用程序,并使用访问令牌获取资源。 这个postbuild议一旦通过Facebook或Twitter或其他authentication,每个请求使用访问令牌,并不需要会话 例如 GET / api / v1 / somefunction?token ='abcedf' 客户端从响应中获取访问令牌。 客户端使用token参数调用一些服务器API。 所以下面的代码是通过twitter授权用户,如果我的应用没有find我的用户信息,那么把用户信息存储到数据库中。 passport.use(new TwitterStrategy({ consumerKey: config.twitter.clientID, consumerSecret: config.twitter.clientSecret, callbackURL: config.twitter.callbackURL }, function(token, tokenSecret, profile, done) { console.log('TwitterStrategy /auth/twitter………….',profile.id, profile.displayName, profile.username, profile.emails[0], profile._json.avatar_url); userModel.findUserByQuery({ 'social.twitter.id': profile.id }, function (err, user) { if (!user) { console.log('twitter user not found'.red); userModel.createNewUser( { username:profile.username, email:profile.emails[0].value, img:profile._json.avatar_url, fullname:profile.displayName, […]
我有一个快速应用程序设置,需要一些关于存储令牌的build议。 在validation用户帐户后,我正在从OAuth 2服务器接收访问令牌,然后我需要为后续的api请求使用该帐户。 我想隐藏来自客户端的令牌值,我相信这样做的一个方法是将令牌保存在服务器中的一个编码的cookie,以便进一步的请求时,这些可以通过中间件路由,然后cookie可以用于检索令牌存储服务器端,然后在正在进行的对实际api端点的请求中用作标题值。 有人实际上已经问过这个问题 – 如何在一个Angular应用程序中存储一个身份validation令牌这正是我在我的应用程序中使用的stream程,但答案谈论使用一个Angular服务,我不太确定我想做到这一点,当然这可以全部由Express处理,所以客户端代码不需要知道令牌,只是API服务器返回的任何错误。 所以我认为我需要stream量总结: 用户提交login凭证 OAuth 2服务器返回访问令牌 令牌被保存在Express中的某个地方 生成一个cookie并将其发送回客户端。 Cookie包含可能编码的令牌值? 或者,也许存储在Express中间件组件中的令牌值的id? 客户端发出api请求,哪个Express路由中间件启动。 快速检查cookie的存在,并解码令牌值,或以某种方式从存储机制服务器端检索。 令牌值然后被用作expression和最终api端点之间的头部 有可能中间件已经在那里处理这种事情,我已经看到PassportJS似乎是我可能要使用的有点东西,但我不太确定它处理我正在工作的服务器上的OAuth2令牌stream反对(密码授予),而是似乎更适合redirectloginOAuthstream量。 我当然需要在某处保存令牌值,所以某种forms的存储(不在内存中,我不认为)。 对于Express,我是相当新的,所以如果能够解决这个问题的话,我会很感激你的build议。 谢谢
我正在使用NodeJS处理REST API。 为了validation,我决定使用Passport 。 我想要真正的RESTful API。 所以这意味着我必须使用令牌而不是会话。 我想让用户使用用户名和密码login,或使用Facebook,Google和Twitter等社交networking。 我使用我自己的OAuth2.0服务器来使用oauth2orize模块发出Access和Refresh tokens 。 所以,现在我可以注册新用户,然后颁发他们的令牌。 我遵循这个教程: http://aleksandrov.ws/2013/09/12/restful-api-with-nodejs-plus-mongodb/ validation路由的用户: // api ———————————————————————————— app.get('/api/userInfo', passport.authenticate('bearer', { session: false }), function(req, res) { // req.authInfo is set using the `info` argument supplied by // `BearerStrategy`. It is typically used to indicate scope of the token, // and used in access control […]