LoginSignup
12
11

More than 5 years have passed since last update.

オープンソースMBaaS「BaasBox」を使ってみる(1) インストールからログインまで

Last updated at Posted at 2014-01-24

数回に分けて、このBaasBoxを手元のvagrant環境で動かしてAPIたたくところまで試す予定。

The open source backend for your mobile app | BAASBOX
BaasBox - オープンソースなmBaaS - モバイル/タブレット向けオープンソース紹介 - Mobile Touch - モバイル/タブレット開発者およびデザイナー向け情報ポータル

環境

$ uname -a
Linux vagrant-ubuntu-precise-64 3.2.0-57-generic #87-Ubuntu SMP Tue Nov 12 21:35:10 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 

準備

JDK(6以上)とPlay Framework(バージョンはBaasBoxのREADMEにあった2.1.1にした)が必要

# jdk インストール
# http://www.devlog.alt-area.org/?p=1817 を見た 
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer

# playフレームワークのインストール
# http://hirooka.pro/?p=1618 を見た
$ wget http://downloads.typesafe.com/play/2.1.1/play-2.1.1.zip
$ unzip play-2.1.1.zip
$ sudo mv play-2.1.1 /usr/local/
$ sudo ln -sf /usr/local/play-2.1.1 /usr/local/play

# パスの設定
$ vi ~/.profile
# export PLAY_HOME=/usr/local/play
# export PATH=$PATH:$PLAY_HOME

$ source ~/.profile
# 確認
$ which play
$ play help

BaasBox

# 落としてきて
$ wget https://github.com/baasbox/baasbox/archive/master.zip
$ unzip master.zip
$ cd baasbox-master

# 一回パッケージング?
$ play dist

# dist以下にzipファイルが生成されるので、それを展開
$ cd dist
$ unzip baasbox-0.7.3-snapshot.zip

# startという起動用のスクリプトを実行
$ cd baasbox-0.7.3-snapshot
$ chmod 755 start
$ ./start

これでhttp://localhost:9000とかhttp://192.168.33.10:9000とかでアクセスできるようになる。READMEにも書いてあるとおり、admin/admin/1234567890で管理画面にログインできて、上記リンクにあるスクリーンショットみたいな画面になる。

BaasBox1.png

ユーザーを作成してログインしてみる

私がとっつきやすそうなところといえばユーザー認証なので、ユーザーを作成してログインしてみる。APIでも作成できるけど画面から。作成するユーザーは以下のとおり。

Username : ritou
Password : (パスワードランキング1位になった6文字)
Role : administrator

BaasBox2.png

BaasBox3.png

BaasBox4.png

ログインするAPIをたたいてみる。

$ curl -i -X POST -d "username=ritou&password=123456&appcode=1234567890" http://localhost:9000/login
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
Content-Length: 292
X-BB-SESSION: c60e3705-0fe9-48fc-93cf-a26bd00e752e
Content-Type: application/json

{"result":"ok","data":{"user":{"name":"ritou","status":"ACTIVE","roles":[{"name":"administrator"}]},"visibleByAnonymousUsers":{},"visibleByTheUser":{},"visibleByRegisteredUsers":{},"signUpDate":"2014-01-24 02:47:26+0000","X-BB-SESSION":"c60e3705-0fe9-48fc-93cf-a26bd00e752e"},"http_code":200}

ログインできた。レスポンスヘッダ、ボディに含まれる"X-BB-SESSION"がBaasBoxにおけるセッションIDとなる。せっかくなのでユーザー新規作成もAPIでやってみる。

$ curl -i -X POST -H "Content-Type: application/json" -H "X-BAASBOX-APPCODE: 1234567890" -d '{"username":"ritou2","password":"password","visibleByTheUser":{},"visibleByFriend":{},"visibleByRegisteredUsers":{},"visibleByAnonymousUsers":{}}' http://localhost:9000/user
HTTP/1.1 201 Created
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
Content-Length: 290
X-BB-SESSION: fb30f20b-5fab-4623-b19c-f78abde069f3
Content-Type: application/json
BB-USERNAME: internal_admin

{"result":"ok","data":{"user":{"name":"ritou2","status":"ACTIVE","roles":[{"name":"registered"}]},"visibleByAnonymousUsers":{},"visibleByTheUser":{},"visibleByRegisteredUsers":{},"signUpDate":"2014-01-24 03:46:12+0000","X-BB-SESSION":"fb30f20b-5fab-4623-b19c-f78abde069f3"},"http_code":201}

そのユーザーでログイン。

$ curl -i -X POST -d "username=ritou2&password=password&appcode=1234567890" http://localhost:9000/login
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
Content-Length: 290
X-BB-SESSION: 1b02a39a-b7fa-4cdc-a278-a3f657743703
Content-Type: application/json

{"result":"ok","data":{"user":{"name":"ritou2","status":"ACTIVE","roles":[{"name":"registered"}]},"visibleByAnonymousUsers":{},"visibleByTheUser":{},"visibleByRegisteredUsers":{},"signUpDate":"2014-01-24 03:46:12+0000","X-BB-SESSION":"1b02a39a-b7fa-4cdc-a278-a3f657743703"},"http_code":200}

ここまでの動作には問題なし。passwordや123456っていうパスワードは自動ではじきたい気もするが。。。
次回はソーシャルログインやコレクション登録のあたりを触ってみる予定。

12
11
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
12
11