これまでにPassportでFacebook認証をやったことはありますが、OAuth2.0のプロバイダを提供するためにどんなライブラリがあるのか、というのが今回の話です。
OAuth2.0のクライアントライブラリは多くありますが、プロバイダライブラリはどうでしょうか。思ったよりは多かったです。条件は、express/connectのmiddlewareとして使えることです。
現時点でのStar数順に並べます。
- https://github.com/jaredhanson/oauth2orize --- 570
- https://github.com/ammmir/node-oauth2-provider --- 402
- https://github.com/AF83/oauth2_server_node --- 103
- https://github.com/thomseddon/node-oauth2-server --- 91
- https://github.com/wpreul/OAuth --- 36
- https://github.com/balgarath/oauth2-express --- 4
- https://github.com/makesites/connect-oauth2 --- 2
- https://github.com/t1msh/node-oauth20-provider --- 0
今回は、一つずつコメントして行こうと思います。
まず、oauth2orizeですが、これはだいぶリッチな感じです。toolkitとあるように、色々な機能があります。connect middlewareにもなるようですが、standaloneでも動かすこともできる様子。testやexampleも豊富で信頼感あります。
node-oauth2-providerは歴史がある感じです。機能は多くなく、シンプルです。ストレージもコーディングしないといけませんが、個人的には一番好みのライブラリです。
oauth2_server_node
は、最近更新されていません。oauth2の仕様もdraft10とのことです。
node-auth2-serverは、まだactive developmentということでドキュメントが追いついていないようです。しかし、ドキュメントを見る限りでは機能も豊富で、シンプルなmiddlewareとしても使えそうなので、stableになれば、oauth2orizeよりはexpressで使いやすそうです。
OAuthも、READMEによるとdraftの仕様を参照しており、その後メンテされていない様子です。
oauth2-expressは、READMEが空です。よく見たらコードも未完成でした。
connect-oauth2も、WIPとなっていて1年ほどコミットがないので、中断したプロジェクトでしょうか。いいパッケージ名なのに惜しい。
node-oauth20-providerは、StarもFolkもゼロというプロジェクトですが、見た感じはだいぶしっかりしています。最近コーディングを始めた様子。コミットログをよく見ると、node-oauth2-providerの存在を知らなかったようですね。node-oauth2-serverと比較すると、redis storageの対応が進んでいますが、全体的には劣る感じがします。また、コミュニティがついていないのが痛いですね。今後、作者の進め方次第では状況は変わることはあるでしょう。
以上、まとめると、現時点では、 シンプルで安定しているけど自分でコーディングしないといけないnode-oauth2-providerか、機能豊富でアクティブなnode-oauth2-serverがよさそうです。
でも、どっちも使ってみたわけではないので、ほんの参考程度です。
コメント