非常に新しく、フレームワークの周りに私の頭を包んでいる。 ember-cliの使用2.9.1。リダイレクトステップは、鳥居とgoogle-oauth2でember-simple-authを使用して起動しません。
ember-simple-authとそのtorii/google-oauth2認証ツールを使用して認証を実行しようとしています。この時点で、最終ステップ以外はすべて動作し、認証が成功した後のリダイレクトが実行されます。この部分を完全に記述するチュートリアルや説明はないようです。
認証が正常に実行されたことが確認され、認証コードが返され、ローカルストレージに格納されます。それはリフレッシュとそのすべてにわたって持続する。ただし、ポップアップウィンドウのダンスが発生した後は、リダイレクトは発生しません。私はログインページに座ったままで、自分のアプリケーションとGoogleの両方に登録したredirectUriに移動する必要があります。
はさらに、ポップアップダンス中に、2ポップアップウィンドウが表示され - 最初は、Googleからのコンテンツとの1である第2には、アドレスバーに自分のredirectUrlを示すものであること。しかし、両方のウィンドウはすばやく閉じ、メインのログインページではリダイレクトは発生しません。 2番目のポップアップで提供されているメインのログインページで正しく処理されていないものがなければなりません。
ここに関連コードがあります。ご協力いただき誠にありがとうございます!
設定/ environment.js:
// config/environment.js
var ENV = {
...
torii: {
providers: {
'google-oauth2': {
apiKey: '189573826905-p886jmjpam371fjoitktoec8hretkoo8.apps.googleusercontent.com',
redirectUri: 'https://localhost:4200/app/search',
}
}
},
...
};
APP /コンポーネント/ Googleがサインイン-button.js
// app/components/google-signin-button.js
import Ember from 'ember';
export default Ember.Component.extend({
session: Ember.inject.service(),
didInsertElement() {
Ember.$.getScript('https://apis.google.com/js/platform.js');
},
actions: {
authenticate_google() {
this.get('session').authenticate('authenticator:torii', 'google-oauth2');
},
invalidateSession() {
this.get('session').invalidate();
}
}
});
APP /テンプレート/構成要素/ Googleがサインイン-button.hbs
// app/templates/components/google-signin-button.hbs
<meta name="google-signin-client_id" content="755937126905-p886jmjpam371fjoitktoec8hretkoo8.apps.googleusercontent.com">
<div {{action 'authenticate_google'}}>
<h2 id="title">google oauth2 test</h2>
<div google-signin-button class="g-signin2"/>
</div>
{{#if session.isAuthenticated}}
<a {{action 'invalidateSession'}}>Logout</a>
{{else}}
{{#link-to 'login'}}Login{{/link-to}}
{{/if}}
{{yield}}