0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

sorceryでtwitterログイン実装中に出会したエラーあれこれ

0
Posted at

前提

Rails 6.0.3.1
ruby 2.6.3
sorcery (0.15.0)


sorceryでtwitterログイン認証を実装していたのですが、エラーに四苦八苦していたので、特に苦しめられたエラーについて記録として残そうと思います。

ActiveSupport::MessageEncryptor::InvalidMessage

credentials.yml.encにtwitterのkeyと```sercret key

### 解決策

そもそも```credentials.yml.enc```なるものをきちんと理解していませんでした。
まずは、以下の記事を参照してみました。

[Rails5.2からsecrets.yml*が廃止されcredentials.yml.encに統合されるよ](https://qiita.com/daichirata/items/da40e205d273ae69fcfc)

読みところによると、Rails5.2.0になる前までは、```secrets.yml```とファイルにsercretsなあれこれを**平文**で記述していたみたいですね。

``暗号化済みのもの``が```credentials.yml.enc```では、記載されているようです。
改めて```credentials.yml.enc```中身を改めて確認してみると、意味不明な羅列がされていました。

確かに、暗号化されている所に、
twitterの```key```と```sercret key```を書いていくのは、おかしいなと思いました。

ってことで、上記の記事を参考に以下のコマンドで```credentials.yml.enc```ファイルを編集できることがわかりました。

```vim

EDITOR="vi" bin/rails credentials:edit
twitter:
  key: keyの値
  secret_key: sercret keyの値


上の記述を追加しました。
恥ずかしながら、Vimの使い方に慣れていないので、以下の記事を参照させていただきなんとか記述が完了致しました。
大変感謝です。
よく使う Vim のコマンドまとめ

undefined method `sorcery_adapter' for nil:NilClass

こちらは、凡ミスですが、ググっている時に全然参照記事がなくて、時間をくってしまいました。

エラーの原因としては、

config/initializers/sorcery.rb
.
.
.
config.user_config do |user|
.
.
.
# こちらの記述が抜けていました。
user.authentications_class = Authentication
.
.
.

sorceryのwikiにも記述があったのに、飛ばしていました。
今後きちんと、手順を参照したものを真っ先に確認したいと思います。
一応こちらも参照したので、載せておきます。

401 Authorization Required

こちらのエラーですが、Twitter認証が完了しリダイレクトする際に表示されました。

以下の記事を参考に、一通り試してみたのですがどれもうまくいかず。。
OAuth::Unauthorized 401 Unauthorizedなんてエラーがでたら

あまり記事がなかったのですが、たまたま以下の記事があったので目を通してみました。
Twitterログイン 401 Authorization Required
twitterデベロッパーツールのCallbacks URLshttp://127.0.0.1:3000/oauth/callbackを設定したのですが、いつ使うんだろう?と思っていました。

結論としては、localhost:3000にアクセスせず、http://127.0.0.1:3000/oauth/callbackにアクセスすることでエラーが解消されました。

最後に

外部API認証を初めて、行いますがrailsでの知らないファイルの存在やデベロッパーツールなるものにも触れることができ中々収穫ありでした。
またwikiをきちんと読んで、進める経験ができたのもよかったです。

Twitter認証を進める上wikiで、参考にさせていただいた記事

[【Rails】SorceryでTwitter認証]
(https://qiita.com/aiandrox/items/5435c8b285c7dc0c455f#%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88)
【Rails】Sorceryでfacebook認証 Sorceryの設定

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?