当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

Go言語初心者向けWEB講座その1:neoフレームワーク (簡単な認証、サインアップ、ログインを準備)

Go言語も様々なフレームワークがありますが、あえて情報ソースが少なく学習コストが低いものを選んでみました。このneoは単純で1日で覚えられます。フルスタックのフレームワークならRevelを使うと思いますが、どの言語もメジャーなものを選択するとちゃんと理解しないでコピペで終わってしまいそうなので私は常にマイナーなものを選びます。言語を覚えているのか、フレームワークを覚えているのかがわからなくなるのでGo言語に限らずどの言語もフレームワークやその言語を深く理解しようと思う場合、マイナーなものを選択します。そうすることで後々の改造や言語を詳しくしるきっかけになるからです。

neoフレームワークのインストール

neoのコンフィギューレーションファイル

neoでプロジェクトフォルダーを自動生成するとその配下にconfig.tomlとmain.goの簡単なWEBサーバ起動ファィルができていることを見つけるでしょう。config.tomlはneoのコンフィギュレーションファイルです。このファイルを編集する機会があるとするなら多くはリッスンするIPアドレスとポート番号ではないかと思います。以下に別のIPアドレスに変更した場合のサンプルを用意します。

config.toml

ファイル構成

尚、全体のプロジェクトのファイル構成は以下の通り。

メインのソースコード

初回の仕様としてはログイン情報のサインアップとログインする仕組みを提供する必要最低限を実装します。セッションの機能やユーザデータはMySQLで処理します。尚、今回はユーザパスワードは生のテキストで実装しますが、次の「その2」では暗号化する処理を入れた内容で実施する予定です。

セッション管理にはSCSを使用しています。SCS: HTTP Session Management for Go予めインストールしておきましょう。また、mysqlのgo-sql-driverも合わせて導入してください。

main.go

テンプレートの用意

templates/header.tpl templates/footer.tpl templates/index.tpl signup.tpl login.tpl logined.tpl pages.tpl

ユーザ認証処理

user/userauth.go

CSS

asset/css/style.css

テスト用のデータベース

今回はデバッグしやすいようにパスワードを暗号化していません。次のその2のシリーズで暗号化する予定です。