【发布时间】:2019-01-10 04:11:54
【问题描述】:
我正在尝试使用打字稿实现oauth2-server。
并且需要在 Oauth2Server 的构造函数中定义使用的模型并赋值。但在运行时获取undefined 模型。
我定义了一组这样的函数
async function getClient(clientId:string, clientSecret:string) {
try {
let dbClient = await OAuthClient.findById(clientId)
console.log(dbClient)
let client = toClientDTO(dbClient);
if(!client){
console.log("client not found");
return false
}
if(clientSecret && clientSecret !== client.secret){
throw new Error("client not found: 'secret error'");
}
console.log("Client return value", client);
return client;
} catch(e) {
console.log("get client err", e);
}
}
并像这样导出它们:
export const model = {
getAccessToken: getAccessToken,
getClient: getClient,
getRefreshToken: getRefreshToken,
getUser: getUser,
saveToken: saveToken,
validateScope: validateScope,
verifyScope: verifyScope,
}
我在这里使用模型:
import Oauth2Server from 'oauth2-server';
import {model} from './model';
console.log(model);
const oauth = new Oauth2Server({
model: model,
requireClientAuthentication: {password: false}
});
export default oauth
但是当我在 oauth 对象上调用函数时,它抱怨模型未定义
import oauth from './oauth';
export default (app:Application) => {
app.all('/oauth/token', (req:Request,res:Response) => {
var request = new OAuthRequest(req);
var response = new OAuthResponse(res);
oauth
.token(request,response)
.then(function(token) {
return res.json(token)
}).catch(function(err){
return res.status(500).json(err)
})
});
}
我可以使用几乎相同的设置和使用常规 javascript 的代码来使其工作。
但是当我使用打字稿时,无法弄清楚为什么模型是undefined。
欢迎所有建议
最好的问候
【问题讨论】:
标签: node.js typescript oauth-2.0