openssl_sign(): supplied key param cannot be coerced into a private keyというエラーがherokuで出る場合の対処法

目次

現象

firebaseのユーザ作成がローカルのlaravel環境だと上手くいくのに、herokuにdeployした環境だと上手くいきませんでした。

$this->auth->createUserWithEmailAndPassword($email, $password);

laravel側は上記のfirebaseの処理で以下エラーを出します。

openssl_sign(): supplied key param cannot be coerced into a private key

原因

herokuで環境変数で設定しているFIREBASE_PRIVATE_KEYがおかしい。

ローカルのenvでは

FIREBASE_PRIVATE_KEY=”—–BEGIN PRIVATE KEY—–\n{{key}}\n—–END PRIVATE KEY—–\n”

となっている。

herokuの環境変数でも同じようにしているのですが、エラーが起きます。

試したことは

  • \nの部分をherokuの管理画面から改行する
  • “”を消してみる
  • “”を”にしてみる

この辺を全て組み合わせたのですがどうしても上手く行かない。

どうもherokuの環境変数は\nで文字列が切れてしまっている気がする。

解決方法

'private_key' => str_replace('\\n', "\n",config('services.firebase.private_key')),

色々試した結果、\nを\\nに変換してやるとprivate_keyの改行が正しくなりました!!!

ファイルにprivate_keyを記載して読み込みとか他にも方法はありそうですが、今回はこれで対処します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次