使用ASP.net Identity 2验证expressjs api调用
我正在使用asp.net和identity 2构建rest api。这是我的主要数据api 我还在使用expressjs构建另一个api,用于搜索存储在搜索索引中的数据 Angular spa将使用这些API来满足数据和搜索需求使用ASP.net Identity 2验证expressjs api调用,express,asp.net-web-api,oauth,asp.net-web-api2,asp.net-identity-2,Express,Asp.net Web Api,Oauth,Asp.net Web Api2,Asp.net Identity 2,我正在使用asp.net和identity 2构建rest api。这是我的主要数据api 我还在使用expressjs构建另一个api,用于搜索存储在搜索索引中的数据 Angular spa将使用这些API来满足数据和搜索需求 如何使用asp.net identity在用户登录时已经提供给angular的承载令牌保护expressjs api调用?请尝试ExpressBearter令牌。这似乎符合你的描述 要实现这一点,您需要在ExpressJSAPI中使用令牌消费中间件。我这样做如下 使用J
如何使用asp.net identity在用户登录时已经提供给angular的承载令牌保护expressjs api调用?请尝试ExpressBearter令牌。这似乎符合你的描述
要实现这一点,您需要在ExpressJSAPI中使用令牌消费中间件。我这样做如下
npm安装jsonwebtoken
参考-
参考-
另外,我已经通过发布JWT(授权服务器或Auth&resource服务器)的web API实现了这一点,并且成功地保护了python(资源服务器)和spring(资源服务器)中内置的API。您能检查我的回答吗?我现在坚持在.net中完成所有工作,但我非常感谢您的时间。当我转换成微服务时,我一定会遵循这一点。
var apiRoutes = express.Router();
apiRoutes.use(function(req, res, next)
{
// check header or url parameters or post parameters for token
var token = req.body.token || req.query.token || req.headers['x-access-token'];
// decode token
if (token) {
// verifies secret and checks exp
jwt.verify(token, app.get('superSecret'), function(err, decoded)
{
if (err)
{
return res.json({ success: false, message: 'Failed to authenticate token.' });
}
else
{
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});
}
else
{
// if there is no token
// return an error
return res.status(403).send({
success: false,
message: 'No token provided.'
});
}
});