Sails アプリケーションを OAuth2 で保護するプロジェクトをセットアップしました: https://github.com/lucj/sails-oauth2-api
Authorization Code Grant に問題があり、解決できません。
基本的に、これは私が従う手順です:
- Sails アプリ
を実行します - unTrustedClient (example フォルダー内のノード untrustedClient.js) を実行します
- Web ブラウザーから、次の URL を発行します。
http://localhost:1337/oauth/authorize?client_id=O3UTGRFNI1&response_type=code&redirect_uri=http://localhost:1339&scope=http://localhost:1337
注: client_id の値は、アプリケーションの起動時にセイル ターミナルで untrustedTestClient に対して表示される値です。
これにより、「ログイン」ページにリダイレクトされますが、これで問題ありません。
https://dl.dropboxusercontent.com/u/2330187/login.png
しかし、資格情報 (デフォルトでは me@gmail.com /password) を送信すると、元の URL (上記の URL) ではなく /index にリダイレクトされます。
https://dl.dropboxusercontent.com/u/2330187/index.png
ダイアログ ページ (許可/拒否オプションのあるページ) を表示するには、上記の URL を再発行する必要があります。
https://dl.dropboxusercontent.com/u/2330187/allow_deny.png
「connect-ensure-login」ミドルウェアを使用しています。
app.get('/oauth/authorize',
login.ensureLoggedIn(),
server.authorize(function(clientId, redirectURI, done) {
Client.findOne({clientId: clientId}, function(err, client) {
if (err) { return done(err); }
if (!client) { return done(null, false); }
if (client.redirectURI != redirectURI) { return done(null, false); }
return done(null, client, client.redirectURI);
});
}),
server.errorHandler(),
function(req, res) {
res.render('dialog', { transactionID: req.oauth2.transactionID,
user: req.user,
client: req.oauth2.client
});
}
);
資格情報を入力するとリダイレクトが自動的に行われるようにするにはどうすればよいですか?