簡體   English   中英

REST API,OAuth2和身份驗證錯誤

[英]REST API, OAuth2 and authentification errors

首先,感謝您的答復。 我嘗試使用nodeJS制作REST API,我認為oAuth2是根據我的系統對用戶進行身份驗證的最佳方法。

用戶存儲在LDAP中,並且api密鑰將保留在MySQL引擎上。 客戶帳戶代碼也將存儲在MySQL中。 所有過程都正常,用戶已通過身份驗證,API令牌已保存在MySQL中,但是當我嘗試使用此令牌時,護照拒絕對我的請求進行身份驗證並返回:

Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
    at ServerResponse.res.setHeader (/home/lolostates/Developpement/nodejs/oauth2/test/node_modules/express/node_modules/connect/lib/patch.js:62:20)
    at ServerResponse.res.header (/home/lolostates/Developpement/nodejs/oauth2/test/node_modules/express/lib/response.js:280:8)
    at ServerResponse.res.json (/home/lolostates/Developpement/nodejs/oauth2/test/node_modules/express/lib/response.js:135:8)
    at exports.info (/home/lolostates/Developpement/nodejs/oauth2/test/user.js:13:9)
    at callbacks (/home/lolostates/Developpement/nodejs/oauth2/test/node_modules/express/lib/router/index.js:272:11)
    at complete (/home/lolostates/Developpement/nodejs/oauth2/test/node_modules/passport/lib/passport/middleware/authenticate.js:218:13)
    at /home/lolostates/Developpement/nodejs/oauth2/test/node_modules/passport/lib/passport/middleware/authenticate.js:200:15
    at pass (/home/lolostates/Developpement/nodejs/oauth2/test/node_modules/passport/lib/passport/index.js:399:14)
    at Passport.transformAuthInfo (/home/lolostates/Developpement/nodejs/oauth2/test/node_modules/passport/lib/passport/index.js:415:5)

請求是通過curl發送的:

curl -H "Authorization: Bearer NoulKM889Aksf60rQONcUJwMuZHI3PDqzeXfkX3Li2BohsxNVsOrd2LLdvJAGZuE168IukUCPbviazhvBjt7VDfLFUMJRIY1fa95kGXQQKzE7etFhocsnYvbLSixbHRmCwXNx5FKj6v83Ci9f9xLqRinEKwaAUIjs03hhq8dCWIp7S0Cbi5jdkxlzwfpZxuShoAZYaFInlf4ymG5oyzQe0WJ2POXOaMarGLO7NkjyIMJXWh7s0Y" http://localhost:3000/api/userinfo

我使用passport-http-bearer,oAuth2orize以及OAuth2orize示例中提供的所有示例函數。

你能解釋一下為什么嗎?

似乎您已嘗試在發送回響應后設置響應頭。 在嘗試設置標頭之前,請確保未調用res.end() (或類似方法)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM