【備忘録】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.

Android Chrome + Developer Tool で Webページのデバッグを行う方法

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')

【備忘録】International Telephone Input 国際電話対応入力フィールド

プライベートでは絶対使わない国際電話。今回訳あって国際電話対応の入力フィールドが必要で調べたら、

https://intl-tel-input.com
便利なものを発見。

こんな感じで、国際電話番号が取得できる。

<link rel="stylesheet" href="path/to/intlTelInput.css">

<input type="tel" id="phone">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="path/to/intlTelInput.js"></script>
<script>
  $("#phone").intlTelInput();
  var $phone = $("#phone").intlTelInput("getNumber"); //国際電話番号を取得
</script>

【備忘録】AWS CodeCommitとSourceTree

GitHubを使いたいので調べてみたら、AWSでCodeCommitがあったので決定。
でもAWS初心者なのでGitHubに辿り着くまでが手間取った。

【AWS】
・AWSアカウントの作成
・CodeCommitを申し込み
・IMAユーザを作成する
・IMAユーザへCodeCommitへのFull Access権限を与える
・IMAユーザのgit認証情報を作成する

【CodeCommit】
・IMAユーザでログインし直す
・リポジトリを作成する
・空ブランチを作成する

【SourceTree】
・空ブランチをCronする。この時、git認証情報が聞かれる。
・空ブランチにソースを登録して、Commit=>Pushする。(masterの出来上がり)

後は、作業ブランチを作成し作業するだけ。

やっと出来たよ。

とりあえず終わり。50歳のシステムエンジニア頑張ったよ

2月のひと月で作り変えを頼まれたサイトもようやく終わり。後はデザインの取り込みが終われば納品と搭載。
さすがに、副業にしては規模が大きかった。

作り変えに困った点
・仕様書がない。(これは通常のこと。あっても更新されてないこともあるしね)
・操作的にちょっと(とらえず現仕様に忠実に)
・フレームワークを使っていない。(c言語でCGIを作った頃を思えば、たいしと事ないか)
・セキュリティ問題ありあり

結局、CakePHPを使って100%作り変え。PHPも数年ぶりだったから最初は戸惑ったけど、やはりフレームワークは楽。制御を考えずに処理ロジックだけ書けば動く。データベースもModelを作ればselect/insert/update/deleteもできる。お蔭でなんとかひと月で作り変えも無事納品が出来そうです。

50歳のシステムエンジニア頑張ったよ

今やってるプログラムの副業が結構大変

1年前に造られたPHPプログラムのメンテナンスを引き受けたのだが、SQLインジェクション対策なし、クロスサイト対策なし、CSRF対策なしと、おまけに10年前のPHPの作り方でHTMLにもろにPHPが組み込まれている。

お客に、「残念ですが全て使えませんよ。」と伝え作り変えることを提案し、この2月中に作り変えることになったのだが工数はスタートアップと言うことで大幅値引きしたのだが、規模はそれなりにある。

【備忘録】CakePHP2 Modelを使用した登録

 

Thanks.

CakePHPのModelで、既定のプライマリキーのデフォルトカラム名「id」を別のカラム名に変更したい

idをPrimaryKeyではなく別の意味で使っていると、単純にこれだけだと登録されずに更新になる。
$this->Model->create();
$this->Model->save();

Model中に
public $primaryKey = ‘no’;
or
public $primaryKeyArray = array(‘id’, ‘no’);
でPrimaryKeyを変更すれば大丈夫。