OAuthについてのリンク

認証で信用できそうなリンク

REST APIの基本

https://community.cisco.com/legacyfs/online/attachments/document/files/d-04_overview-of-rest-apis.pdf

・HTTP認証とBasic認証について

developer.mozilla.org

・OAuth関係

openid-foundation-japan.github.io

 

developers.google.com

 

developers.google.com

 

www.slideshare.net

 

 

OAuth徹底入門 セキュアな認可システムを適用するための原則と実践

OAuth徹底入門 セキュアな認可システムを適用するための原則と実践

 

『Web API: The Good Parts』を読んだ

API設計をしなければいけなくなったが、大して知識や経験もなく、ネットで落ちてる断片的な情報では限界を感じて買って急いで読みました。

知りたいことが体系的にまとまっていて、大変良かったです。

特によいAPIとはなにかを考えさせられた。

  1. シンプルでわかりやすいこと。
    →「1スクリーン1APIコール、1セーブ1APIコール」
    表示速度を上げる、データの不整合を防ぐことにもなる。
  2. APIのアクセスをなるべく減らすこと。
    アクセスが多い = 利用者にとって使いづらい可能性。開発側にとってはサーバの負荷が増大するということ。

 API設計についてはネットで色々調べたものの、エンドポイントのURIやレスポンスデータなど悩みやすい部分で結局どちらでもよいとなっていたりして困っていたが、この本では、色々なサービスの例をもとにこうしたほうがよい、こうすべきと書かれてありがたかった。

Web API: The Good Parts

Web API: The Good Parts

 

 

Laravel 会員登録の実装

  • mailhogの設定
$ docker-compose up -d mailhog

Laravel側の設定

/laravel/.env
MAIL_DRIVER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

localhost:8025にアクセス

UserModelにMustVerifyEmailインタフェースを実装

<?php
App\User
class User extends Authenticatable implements MustVerifyEmail

usersテーブルの作成

// すでにusersテーブルが有る場合はロールバックする
php artisan migrate:rollback
php artisan migrate
<?php
/routes/web.php
<?php
Auth::routes(['verify' => true]);
$ php artisan make:auth

localhost/register で登録するとmailhogにメールが送信される

Laradock migrateまで

  • 環境
    Windows 10 Pro
    Docker Desctop 2.0.0.3
    PHP 7.2.15
    Laravel Framework 5.7.27
    MySQL 8.0.15
    ターミナル:Git Bash
$ git clone https://github.com/LaraDock/laradock.git
$ cd laradock
$ cp .env.example .env
$ docker-compose up -d nginx mysql workspace
$ winpty docker-compose exec --user=laradock workspace bash
$ composer create-project laravel/laravel projectxxx --prefer-dist "5.7.*"
$ docker-compose down
/laradock/.env
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../projectxxx
$ docker-compose up -d nginx mysql workspace

localhostにアクセス

$ winpty docker-compose exec mysql bash
mysql> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| default          | %         | caching_sha2_password |
| root             | %         | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+

mysql> CREATE USER 'default'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secret';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'default'@'localhost' WITH GRANT OPTION;
mysql> CREATE DATABASE IF NOT EXISTS `sandbox` COLLATE 'utf8mb4_general_ci' ;
mysql> GRANT ALL ON `sandbox`.* TO 'default'@'%' ;
mysql> FLUSH PRIVILEGES ;
  • LaravelのDB設定
.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=sandbox
DB_USERNAME=default
DB_PASSWORD=secret
$ winpty docker-compose exec --user=laradock workspace bash
$ php artisan migrate