2018年9月26日水曜日

bloggerに出戻り

BloggerからWordPressに移行して2年位使ったけど、アップデートばっかりで面倒くせぇ。そんなんで結局、Bloggerに出戻り。

アフェリエイトもやらないし、備忘録や下らない投稿だし、なんだかんだGoogleサービスに囲まれてるから一元管理できるしね。

移行方法は調べて試したけど、ちょっと古いのか変換が出来てないのか。表示できた記事、表示できない記事があって、結局移行する記事を絞って手作業にした。

参考)


2018年9月24日月曜日

【備忘録】既存システムのユーザ管理をFirebaseに変更

既存システムの拡張性を考え、ユーザ管理をFirebaseに変更することにした。
・独自でユーザを管理するよりGoogleだから安心(感)。
・FaceBookやTwitter連携が簡単にできる。
・Android/iOSアプリ開発に於いてもユーザ認証が簡単にできる。

今回はユーザ管理を認証(メールアドレス/パスワード)をFirebaseに任せることにした。その他のユーザ情報やサービス固有の情報は既存システムで管理する。Firebaseと既存システムのキーとしてはFirebaseで取得できるuidを使用する。

var user = firebase.auth().currentUser;
uid = user.uid;

修正としては
・ユーザ登録(Firebase登録後、既存システムに登録しメール送信)
・ログイン認証(Firebase認証後、既存システムのユーザ情報を取得)
・ログアウト(Firebaseログアウト後、既存システムのSessionを破棄)
・パスワード変更(Firebaseでパスワード変更、既存システムでメール送信)
・パスワードリセット(Firebaseでパスワードリセット)

悩んだ事
・メールアドレスをユーザ情報に持たせるかどうか?(結局持たせた)。
既存システムでメール送信を行うので、一々Firebaseから取得したくない。またメールアドレスは認証IDだから変更されないので既存システムで持っても変更は考える必要がないから。



2018年9月23日日曜日

【備忘録】FirebaseのFacebook認証 androidのchrome

ちょっと、Firebaseに手お出したんですがFacebookの認証にはまりました。
PC版は問題ないのですが、AndroidのChromeだとFacebookアプリが起動されWebページに返ってきません。結局理由は解らないので、以下を参考にFacebook ログイン JavaScript SDKを使ってとりあえず出来た。

やっぱりVersionとかあるからFacebookのSDKを使った方が安全です。
https://firebase.google.com/docs/auth/web/facebook-login?hl=ja(手動でログインフローを処理する)
https://developers.facebook.com/docs/facebook-login/web
https://qiita.com/qantasmz/items/3b3d4fc61a10fc385f9d

Facebookにログインは出来たんだけど、Facebookのログアウトとサービスのログアウトの分けが難しかった。

Facebookをログアウトしたら、サービスもログアウト。
サービスをログアウトしたら、Facebookはログインのまま。

【備忘録】Android ChromeのJavascriptをデバッグする方法

Thanks.
https://webbibouroku.com/Blog/Article/sp-chrome-inspect

FacebookのOauth認証で、androidのchromeで行うとFacebookアプリが起動されPC版とは違う動きに、どうにもならず助かりました。
ちょっと、USBドライバのインストールに手こずりましたが結局スマホのベンダーが出してるドライバをインストールすれば良いだけだったみたい。

chrome://inspect/

【備忘録】CakePHP2で言語切り替え


今まで、日本語サイトばっかりだったから、国際化対応って初めてなんです。
CakePHP2は国際化の仕組みを持っているようですが、今回は言語によって入力フィールドやデザインも変えたいので結局独自方式ですることにしました。CakePHP2の国際化

1.先ずは言語を取得しないとね
言語の取得はパラメータで取得しSessionに入れるだけ。言語パラメータがなかったらデフォルトをセットする。

2.切り替え対象は、HTMLとメールテンプレートなのでViewフォルダにja,enフォルダを作る。
View/Controller/ja
View/Controller/en

3.renderで表示
$this->render($this->name . '/' . lang . '/' . $this->action)
HTMLとメールテンプレートは、これで良いけど。入力エラーやメール件名をどうしようかな?

これは、CakePHP2の国際化を使った方が良さそう。でも結局、今持ってるメッセージ配列を言語で分けるように変更。
'MessageID' => array('ja' =>'テスト', 'en' =>'TEST')