create t3-app で NextAuth + GitHub OAuth で 認証機能を実装する

はじめに kossyです。「T3 Stack 完全に理解した」と言いたいんですが、まだ完全に理解するところにすら辿り着けておらず、焦りを感じています。 今回は、 NextAuth + GitHub OAuth で 認証機能をまずはローカル環境で動かせるところまで実装してみます。 環…

nvm use の自動実行

はじめに kossyです。nodeのバージョンをGlobalに変えたくない(そもそもDocker使え!!)時、ありませんか? 今回は、.nvmrcを用意し、ディレクトリを切り替えた時に自動で .nvmrcで指定したバージョンに切り替える方法を解説します。 環境 MacBookPro Intel …

Create T3 App で作成された layout.tsxのコードを読んでみる

はじめに kossyです。やはり人間には絶対にやらなければならないというプレッシャーが必要だと感じています。 今日は Create T3 App で作成された layout.tsxのコードを読んでみようと思います。 概要 npm create t3-app@latest して、 App Router を有効に…

next.config.jsのimagesの指定について調べてみた

kossyです。Next.js使いになるべく、必死でインプット中です。 まずはconfigファイルからだろう(異論は認めます)ということで、next.config.jsを触っている時に copilot にサジェストされた、imagesの指定について備忘録として残してみます。 以下はChatGPT(…

Rails・データベース・OSのTimeZoneの調べ方

必要に迫られタイトルに挙げたもののTimeZoneの調べ方をマスターしてしまったので、ブログに残しておきます。 # RailsのTimeZoneを調べる場合(コンソールからの調査) # config/application.rbの設定が返る Rails.application.config.time_zone => "Asia/Toky…

deviseのdestroyアクションを実行すると何が起こるか調べてみた

こんにちは!kossyです! 今回は、deviseのdestroyアクションを実行すると何が起こるか調べてみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.0.4 devise 4.8.1 前準備 pry-railsとpry-byebugをGemfileに記載してbundleし…

devise-securityのparanoid_verificationのソースコードを追ってみた

こんにちは!kossyです! 今回はdevise-securityのparanoid_verificationのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.0.4 devise-security 0.16.0 paranoid_verificationってなに? paranoid_ve…

Railsのbuild_associationの挙動がよくわからなかったので調べてみた

こんにちは!kossyです! 今回は、Railsのbuild_associationの挙動がよくわからなかったので調べてみました。 Ruby 2.7.6 Rails 6.0.5.1 前提として、userがreservation(予約)を1つ持つという関連が組まれていることとします。この場合、userクラスのインス…

Railsでddtraceを使う際に、Datadogのログに残すリクエストをフィルタリングしたい

こんにちは!kossyです! さて、今回はDatadog の Ruby 用トレースクライアントであるddtrace gemで、Datadogのトレース対象とするリクエストをフィルタリングする方法について、ブログに残してみたいと思います。 環境 Rails 6.1.4 Ruby 2.7.6 ddtrace 1.4.…

Dockerを使った開発時にpryやirbの履歴を保存したい

こんにちは!kossyです!今回は開発環境にDockerを使ってRailsアプリを開発する際に、pryやirbの履歴を保存する方法についてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.3 docker-compose version 1.27.0 docker-compose.ymlの編集 まずはd…

複数のフラグを1つのカラムで管理できるGem「flag_shih_tzu」の使い方とユースケース

こんにちは!kossyです! 今回は、複数のフラグを1つのカラムで管理できるGem「flag_shih_tzu」の使い方とユースケースについて、 備忘録としてブログに残してみたいと思います。 環境 ruby 2.6.9 Rails 6.0.4 docker-compose flag_shih_tzu とは Booleanを…

外来診療管理システムのデータモデルを考えてみた

こんにちは!kossyです。 今回は、外来診療管理システムのデータモデルの例が掲載されている書籍がありまして、そちらの内容を自分なりに咀嚼してRDBMSに落とし込んでみたので、備忘録としてブログに残してみたいと思います。 WIPですので随時更新します。 …

Time-based One-Time Passwordの仕組みを提供するGem「rotp」をサクッと試して内部実装を把握する

Gem

こんにちは!kossyです! 今回はTime-based One-Time Passwordの仕組みを提供するGem「rotp」をサクッと試して内部実装を把握してみたので、ブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 MacOS catalina rotp 6.2.0 まずはコンソールでサ…

メールのFromに特殊文字を入れるとBounceすることがある

こんにちは!kossyです! さて、今回はメール送信時にFromに特殊文字を入れてBounceする事案に遭遇したので、 ブログに残してみたいと思います。 [Sample] Sampleメールです 上記のように、送信元の文字の始まりが 半角の [ の場合、メールがBounceされてし…

ActionMailerでHeaderの中身を確認したい

こんにちは!kossyです! 今回はActionMailerで送信するメールのHeaderの中身をコンソールから確認する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.1.4 sendgrid deliver_now を使う Jobでメール送信をQueueする場合はdeliver_…

RailsのActiveRecordを使ったモデルに定義されたassociation情報を全て取得する reflect_on_all_associations のソースコードを読んでみる

こんにちは!kossyです! 諸事情ありブログを書かずにおりました、、、月8 ~ 10本ペースは守りたいと思いつつも、なかなか時間の確保が厳しいですね、、、(根性が足りないと言われればその通りなのですが) 今回は、RailsのActiveRecordを使ったモデルに定義…

SmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の JWSの生成周りのソースコードを読んでみる

こんにちは!kossyです! 今回はSmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の JWSの生成周りのソースコードを読んでみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.1.3.1 MacOS Catalina lates…

SmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の 公開鍵検証周りのソースコードを読んでみる

こんにちは!kossyです! 今回は SmartHealthCardsの発行と検証を行うことができるGem 「health_cards」の、公開鍵の検証周りのソースコードを読んでみたいと思います。 環境 Ruby 3.0.3 Rails 6.1.3.1 MacOS Catalina latest HealthCards::Verifier APIドキ…

Railsのcofig_forメソッドでアプリケーションのカスタム値を設定してみる

こんにちは!kossyです! 今回はcofig_forメソッドでカスタム値を設定する方法について、ブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.1.4 使い方 # config/environments/development.rb Rails.application.configure do config.custom_value …

Smart Health Cardの発行と検証を行えるGem 「health_cards」をRails開発環境で動かす

こんにちは!kossyです! 今回はSmart Health Cardの発行と検証を行えるGem 「health_cards」をRails開発環境で動かす手順について、ブログに残してみたいと思います。 環境 Ruby 2.7.4 Rails 6.1.3.1 MacOS Catalina 環境構築 以下のページからソースコード…

RubyのOpenStrictクラスの使い方をGemのコードで理解を試みる

こんにちは!kossyです! 今回は、RubyのOpenStrictクラスの使い方を saml-idp という Gem のコード内での使い方を見て、理解を深めてみたいと思います。 ドキュメントを見る 公式のOpenStrictクラスのドキュメントを見てみます。docs.ruby-lang.org 要素を…

sendgridでメールの一斉配信をする際に宛先ごとに異なる文字列を仕込む方法

こんにちは!kossyです! さて、今回はsendgridでメールの一斉配信をする際に宛先ごとに異なる文字列を仕込む方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 X-SMTPAPIの Substitution Tags を使う 以下のドキュメントによる…

ruby-samlでX509証明書の有効期限を取得したい

こんにちは!kossyです! 今回は ruby-saml でX509証明書の有効期限を取得する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 ruby-saml 1.13.0 not_afterメソッド 結論から言うと、OpenSSL::X509::Certificate#n…

deviseのencrypted_passwordに値が保存される仕組みを調べてみた

こんにちは!kossyです! 今回はdeviseで認証機能を利用する際に必要になるカラムである、「encrypted_password」カラム に値が保存される仕組みを調べてみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 3.0.3 Rails 6.0.4 devise 4.8.1 …

RailsでPostgreSQLを使う際にgen_random_uuid関数を有効化したい

こんにちは!kossyです! 今回はRailsでPostgreSQLを使う際にgen_random_uuid関数を有効化する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 PostgreSQL 13系 マイグレーションファイルの作成 gen_random_uuid関…

devise-two-factorでの2要素認証設定時にdigestを変更したい

こんにちは!kossyです! 今回はdevise-two-factorでの2要素認証設定時にdigestを変更する方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 MacOS BigSur devise-two-factor 4.0.1 otpメソッドのオーバーライド devise-two-fact…

Rubyで五捨五超入を計算する

こんにちは!kossyです! さて、今回はRubyで五捨五超入する方法について、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 五捨五超入とは 主に薬価の計算を行う時に用いる端数処理で、薬価の円を点数に直して計算するときに使われます。www…

graphql-rubyで認可制御を行うready?メソッドとauthorized?メソッド

こんにちは!kossyです! さて、今回はgraphql-rubyで認可制御を行うready?メソッドとauthorized?メソッドについて、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 MacOS BigSur graphql-ruby 1.13.0 graphql-rubyでの認可制御…

パスワードリセット機能を提供するdeviseのrecoverableモジュールのソースコードを追ってみた

こんにちは!kossyです! 今回はパスワードリセット機能を提供するdeviseのrecoverableモジュールのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.9 Rails 6.0.4 MacOS BigSur createアクション まずはcreate…

devise-securityのsession_limitableモジュールのソースコードを追ってみた

こんにちは!kossyです! さて、今回はdevise-securiyのsession_limitableのソースコードを追ってみたので、備忘録としてブログに残してみたいと思います。 環境 Ruby 2.6.8 Rails 6.0.4 MacOS BigSur devise-security 0.16.1 前提 devise-securityのsession…