id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	include_gantt	dependencies	due_assign	due_close
119	サインアップ機能	n-nishimura	mn	"= サインアップ機能 =

== 概要 ==
任意のユーザは openid server にサインアップできる。

== シナリオ ==
 1. ユーザはサインアップ画面を表示する
 1. ユーザは各項目を入力して、サインアップを要求する
 1. システムは、入力した項目を元にアカウントの仮登録を行う
 1. システムは、本登録を完了のための URL をユーザにメールで送信する
 1. ユーザは、メールに記載された URL にアクセスする
 1. システムは、アカウントを本登録する
 1. システムは、本登録が完了した事をメッセージとメールで通知する

== 仕様 ==
ユーザが入力する項目は以下。

 - ログイン名
 - メールアドレス
 - パスワード
 - パスワード確認用

各項目のバリデーションは以下。

 - ログイン名は必須で、3 - 40 文字以内とする
 - メールアドレスは必須で、3 - 100 文字以内とする
 - パスワードは必須で、4 - 40 文字以内とする
 - ログイン名はシステム内でユニークとする
 - ログイン名はアルファベット、数字、記号(-,_)で構成されている
 - メールアドレスはシステム内でユニークとする
 - メールアドレスは標準的な email の形式であること
 - パスワードは確認用と同一であること
 - 利用規約に同意するにチェックされていること

また、ユーザの入力に応じて、以下を画面に表示する。

 - パスワードの強度を表示する
 - 指定したログイン名で生成される Identity Page の URL を表示する

また、Bot 等によるサインアップの実行を抑制するため、以下の処理を行なう

 - 入力の submit を JavaScript 経由で行う
 - JavaScript を利用した one time token の確認処理

ユーザが入力に問題が無い場合、システムは以下の動作をする

 - データベースにユーザ情報を作成する
 - 仮登録フラグを設定する
 - 仮登録完了と本登録用の URL を記載したメールをユーザに送信する

ユーザが本登録用の URL にアクセスした場合、システムは以下の動作をする

 - 仮登録フラグを解除する
 - ユーザ情報から Persona を作成する
 - 本登録完了のメールをユーザに送信する
 - サインイン画面へ誘導する


== 仮登録時に送信するメールのサンプル ==
{{{
Subject: [OpenID] アカウントの仮登録が完了しました
From: openid@dbcls.jp
To: n-nishimura@esm.co.jp
Date: Mon, 28 Jan 2008 12:20:00 +0900

以下のアカウントを作成しました。

  ユーザ名 : n-nishimura

下記の URL にアクセスして、本登録を完了して下さい。

  URL : https://openid.dbcls.jp/account/activate/xxxxxxxxxxxxxxxx
---
OpenID Service
https://openid.dbcls.jp/
}}}

== 本登録完了時に送信するメールのサンプル ==

{{{
Subject: [OpenID] アカウントの登録が完了しました
From: openid@dbcls.jp
To: n-nishimura@esm.co.jp
Date: Mon, 28 Jan 2008 14:00:51 +0900

登録アカウントが有効になりました。

  ユーザ名 : n-nishimura
  URL : https://openid.dbcls.jp/
---
OpenID Service
https://openid.dbcls.jp/
}}}

"	仕様	assigned	現マイルストーンで作業の停滞を招く	Iterate8(2/21)	OpenID server					0		YYYY/MM/DD	YYYY/MM/DD
