Tag: 基本authentication

通过令牌validation,然后通过会话,如果令牌失败,使用护照?

我正致力于将现有的Web应用程序与NodeJS + Express后端适配到PhoneGap / Steroids应用程序。 当前Web应用程序的身份validation由Passport( http://passportjs.org/ )使用会话进行处理。 app.use( passport.initialize() ); app.use( passport.session() ); 在浏览器中很好用。 不幸的是,会话cookie在PhoneGap中不起作用。 所以发送到服务器的请求只会被拒绝。 PhoneGap的推荐解决scheme是使用令牌策略,而每个向服务器的请求中都包含一个唯一令牌,就像一个API端点一样。 所以,这是我想知道的: 是否有可能适应passport.session(),所以如果没有会话cookie被发现,它会改为检查一个req.token和授权反对呢? 我注意到已经有一些基于令牌的Passport策略可用。 (例如https://www.npmjs.org/package/passport-http-bearer )然而,所有这些策略似乎都假设会话将不会被使用,并被closures。 我真正需要的是使用两者,所以如果一个身份validation失败(例如会话),它可以通过并检查另一个身份validation(令牌)。 有没有人按照这个方法实现了一些东西? 任何build议/指针,将不胜感激。

设置第三方node.jsauthentication服务器

我有两个独立的应用程序(基于MEAN堆栈的app1和app2)在我的服务器上运行。 我想添加一个新的应用程序来pipe理这两个应用程序的身份validation。 我的意思是,如果我尝试从app1login,它会将我redirect到auth应用程序中的login表单,login后我会回到app1中的上一个url。 之后,如果我去app2,我仍然login。 我正在寻找类似于谷歌账户/ ServiceLogin的东西:我可以login一次,并且会话保留几乎所有谷歌产品。 重要的是我使用每个应用程序的子域:app1.mydomain.com和app2.mydomain.com。 我怎样才能使用节点和expression? 目前我使用vhostpipe理每个子域。

OAuth2服务器:无效或缺lessgrant_type参数

我有一个基于NodeJS的OAuth2服务器(使用oauth2-server模块)在我的局域网中启动。 我想用邮递员REST客户端来testing它,但我得到这个错误响应: { "code": 400, "error": "invalid_request", "error_description": "Invalid or missing grant_type parameter" } 这是我的请求configuration: 我试图通过URL发送参数,但我得到的错误: Method must be POST with application/x-www-form-urlencoded encoding 。 谢谢。

AngularJS服务器会话和validation与nodeJS后端服务器

我有一个前端angularJS服务器,通过中间件从MySQL数据库获取后端nodeJS服务器的数据。 我创build了一个前端简单的login表单,需要在后端服务器上发送数据进行身份validation(检查用户是否存在于数据库中)。 如果用户在数据库中find或打印错误login消息或redirect到注册屏幕,后端服务器将返回用户详细信息。 我正在寻找一个指导或例子如何创build一个正确的身份validation系统与两个服务器之间的会话和cookie。 谢谢。

在某些REST API上select性启用HTTP基本authentication

我正在使用node.js restify来构build一个REST API服务器。 我已经将HTTP基本身份validation添加到REST API。 但是,我只想要一些选定的API进行身份validation。 目前,所有的REST API都必须经过authentication。 启用HTTP基本authentication的代码; server.use(restify.authorizationParser()); function verifyAuthorizedUser(req, res, next) { var users; users = { foo: { id: 1, password: 'bar' } }; if (req.username == 'anonymous' || !users[req.username] || req.authorization.basic.password !== users[req.username].password) { // Respond with { code: 'NotAuthorized', message: '' } next(new restify.NotAuthorizedError()); } else { next(); } […]

Koa Authstream动与撰写

在expressjs中我有这个authentication函数。 基本上这只是一个将中间件组合成一个中间件的function。 从现在开始,我想从快递到koa,我怎样在koa做同样的事情呢? import compose from 'composable-middleware'; export function isAuthenticated() { return compose() // Validate JWT .use(function(req, res, next) { if (req.query && req.query.hasOwnProperty('access_token')) { req.headers.authorization = 'Bearer ' + req.query.access_token; } validateJwt(req, res, next); }) // Attach user to request .use(function(req, res, next) { User.findByIdAsync(req.user._id) .then(user => { if (!user) { return res.status(401).end(); } […]

用户注销:将GETredirect到POST(Node / Express)

我正在使用Stormpath for Expressjs(目前没有护照)来处理我的用户注册。 我非常关心什么是注销用户的正确方法。 以前,我总是通过GET方法做到这一点,但是Stormpath 明确要求对/ logout页面进行POST调用 。 我只在用户通过Stormpathlogin时显示一个用户菜单,这是我在我的router.js中使用的超级简单中间件: router.use(stormpath.getUser, function (req, res, next) { if (req.user) { req.session.useremail = req.user.email; } next(); }); 现在,当然在这个菜单里有注销条目。 我希望我的用户点击此链接注销,但是我知道,当使用像<a href="/logout">Logout</a>这样的链接链接时,会发送GET请求,而不是POST。 我一直在寻找无数的方法将GET请求redirect到POST,但是我觉得这是绝对错误的。 另外我觉得在菜单里面使用表单是没有意义的,例如: <ul> <li>User Profile</li> <li>User Settings</li> <form action="/logout" method="/post"> <input type="submit"> </form> </ul> 所以问题是:通过POST简单地注销用户的最佳方式是什么?

来自facebook的特定用户信息使用passport-facebook

我正在使用OAuth的passport-facebook,并从facebook获取用户信息。 但是我所得到的只是一些基本的信息(即名字,姓氏)。 我想要像userEmail和friendList的信息。 我目前的FacebookStrategy是 – passport.use(new FacebookStrategy({ clientID: configAuth.facebookAuth.appID, clientSecret: configAuth.facebookAuth.appSecret, callbackURL: configAuth.facebookAuth.callbackUrl }, function(accessToken, refreshToken, profile, done) { process.nextTick(function() { User.findOne({'facebook.id': profile.id}, function(err, user) { if(err) return done(err); if(user) return done(null, user); else { var newUser = new User; console.log(profile); newUser.facebook.id = profile.id; newUser.facebook.token = accessToken; newUser.facebook.name = profile. displayName; newUser.save(function(err) { if(err) throw […]

我如何使用Alamofire进行基于令牌的authentication?

服务器是用node.js / express写的,会共享下面的代码。 我的目标是将用户身份validation到iOS应用程序中,例如让用户看到用户界面 在IOS / Swift端,用户input电子邮件和密码 import UIKit import Alamofire class LoginViewController: UIViewController { @IBOutlet weak var emailField: UITextField! @IBOutlet weak var passwordField: UITextField! @IBAction func loginButton(sender: AnyObject) { let parameters = [ "email": emailField.text!, "password": passwordField.text! ] // What exactly I have to write to authenticate the user?? Alamofire.request(.POST, "https://genietesting.herokuapp.com/auth/login", parameters: parameters, encoding: […]

使用现有密码哈希和盐创buildHMAC

由于迁移原因,我需要将现有的密码和盐放入Firebase。 我使用Google身份工具包将帐户上传到Firebase。 该工具包允许我创build用户,并要求使用SHA-1密码。 var user1 = { localId: userId, email: email, salt: new Buffer('salt-1'), passwordHash: crypto.createHmac('SHA1', this.hashKey).update('a password' + 'salt-1').digest() }; 以上是将要上传到服务器的内容。 有没有办法crypto.createHmac与现有的SHA-1散列和盐? 我试过用值来replacepasswordHash和salt,但是它们需要以与createHmac编码相同的方式进行编码。