私は足場サイトで遊んでいます。OpenIDまたはGoogleアカウントで初めてログインした後、ユーザーを登録ページに送りたいと思っています。
私はこれを思いついた:
getAuthId creds = runDB $ do
        x ←  getBy $ UniqueUser $ credsIdent creds
        case x of
            Just (Entity uid _) → return $ Just uid
            Nothing → do
                return $ Just $ Key (PersistInt64 0)
そしてHomeRハンドラーでUserId値をチェックし、ゼロの場合は登録フォームを表示します。
このアプローチは機能しますが、ハックのようです。そのような問題に対処するための適切な方法は何ですか?