对于我正在开发的应用程序,它需要大量实时处理,因此我们决定使用Nodejs并使用Express来构建应用程序,比如Laravel。Node.js和express - 通过OAuth进行身份验证
我遇到的问题是验证用户。因为我们有一个OAuth服务器(基于Lumen)来验证用户并为移动应用程序提供一个API。这个应用程序将自己读取/写入数据,并且不会真正使用API。
因此可以通过我们的OAuth验证用户(存储返回的密钥)吗?我在寻找类似loginusingid
东西Laravel
对于我正在开发的应用程序,它需要大量实时处理,因此我们决定使用Nodejs并使用Express来构建应用程序,比如Laravel。Node.js和express - 通过OAuth进行身份验证
我遇到的问题是验证用户。因为我们有一个OAuth服务器(基于Lumen)来验证用户并为移动应用程序提供一个API。这个应用程序将自己读取/写入数据,并且不会真正使用API。
因此可以通过我们的OAuth验证用户(存储返回的密钥)吗?我在寻找类似loginusingid
东西Laravel
从GitHub的OAuth2和护照https://github.com/jaredhanson/passport-oauth2
配置startegy
passport.use(new OAuth2Strategy({
authorizationURL: 'https://www.example.com/oauth2/authorize',
tokenURL: 'https://www.example.com/oauth2/token',
clientID: EXAMPLE_CLIENT_ID,
clientSecret: EXAMPLE_CLIENT_SECRET,
callbackURL: "http://localhost:3000/auth/example/callback"
},
function(accessToken, refreshToken, profile, cb) {
User.findOrCreate({ exampleId: profile.id }, function (err, user) {
return cb(err, user);
});
}
));
现在你可以验证端点无论是在全球范围内
express.use(passport.authenticate('oauth2'));
或在路线特定位置
app.get('/auth/example',
passport.authenticate('oauth2'),
function(req, res) {
// Your code here
});
对不起,但我只是想 - 我将如何能够使用这个库来传递用户名/密码?我使用的oauth服务器是通过一个API,因此它没有授权的东西 – Phorce
它应该在应用程序要求oauth2服务器验证令牌时返回。 –
@ R Gulbrandsen - 感谢您的回复。我们没有/ oauth/authorize /要返回任何东西,所以我很难理解它将如何使用API返回它......在之前的系统中,我们只是使用/ oauth/token传入用户名/密码,然后如果您的快速应用程序将令牌发送到oauth服务器并且它是有效的令牌,则oauth应返回用户信息,则向我们提供用户名/密码正确的标记 – Phorce
http://passportjs.org/可能会支持一些背景,你可以如何进行身份验证来指定一个小问题.. –
@R。古尔布兰森道歉,我不理解“稍微指定一个问题”?我知道'passportjs'但是这是否支持使用您自己的API进行身份验证? – Phorce
用户的不记名令牌将在请求对象中可用,并且可以在每个请求执行前使用护照或自定义中间件进行验证。对你的问题的简短回答是'是'。如果你看护照或有关中间件的文档,它会更容易帮助你一些代码:) –