次のようないくつかの OpenId フィールドをデータベース テーブルに保存したいと考えています。
- OpenId 識別子
- フルネーム
- エイリアス
- Eメール
- 等..
すべての共通スキーマ フィールドのデータ型と長さを要約する場所はありますか? カスタムのもの(プロバイダーごと)があることは知っていますが、一般的なものはどうですか?
例えば。電子メール -> nvarchar(250) .. または何か。
乾杯 :)
次のようないくつかの OpenId フィールドをデータベース テーブルに保存したいと考えています。
すべての共通スキーマ フィールドのデータ型と長さを要約する場所はありますか? カスタムのもの(プロバイダーごと)があることは知っていますが、一般的なものはどうですか?
例えば。電子メール -> nvarchar(250) .. または何か。
乾杯 :)
OpenID 識別子は、技術的には合法的な URL と同じくらいの長さ (実際には約 2K) にすることができますが、150 文字が適切な最大値だと思います。
ちなみに、Claimed Identifier は、ユーザーが指定した識別子や、認証プロセスで見られる可能性のあるその他のバリエーションではなく、主キー (または同等のルックアップ列) として保存してください。また、本当に安全にするには、URL のパスで大文字と小文字を区別する比較を行う必要があります (ホスト領域では大文字と小文字を区別しないようにすることができます)。大文字と小文字の区別の問題は複雑であるため、常にホストを小文字に正規化し、文字列全体で大文字と小文字を区別して比較します。
電子メールには常識を使用してください。40 ~ 50 文字を超えるメール アドレスは見たことがありません。これより長いアドレスは、スパムまたは偽のアドレスである可能性があります。
編集: 電子メール RFC を見ると、電子メール アドレスの最大長は 64 (ユーザー名) + 1 ('@' 文字) + 255 (ドメイン) である可能性があります。とにかく、私は最大長を 100 以下にします。
OpenID Simple Registration Extension 1.0を参照してください。
openid.sreg.email: [RFC2822] のセクション 3.4.1 で指定されているエンド ユーザーの電子メール アドレス。