auto login after register
This commit is contained in:
parent
a7c409ab56
commit
22b20086bb
2 changed files with 28 additions and 31 deletions
|
|
@ -46,8 +46,16 @@ let register_get request = render_unsafe (Register.f request) request
|
|||
|
||||
let register_post request =
|
||||
match%lwt Dream.form request with
|
||||
| `Ok [ ("email", email); ("nick", nick); ("password", password) ] ->
|
||||
render_unsafe (Register.f ~nick ~email ~password request) request
|
||||
| `Ok [ ("email", email); ("nick", nick); ("password", password) ] -> (
|
||||
match User.register ~email ~nick ~password with
|
||||
| Error e -> render_unsafe e request
|
||||
| Ok () ->
|
||||
let res =
|
||||
Result.fold ~error:Fun.id
|
||||
~ok:(fun _ -> "User created ! Welcome !")
|
||||
(User.login ~login:nick ~password request)
|
||||
in
|
||||
render_unsafe res request )
|
||||
| `Ok _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
||||
| `Wrong_session _ | `Expired _ | `Wrong_content_type ->
|
||||
Dream.empty `Bad_Request
|
||||
|
|
|
|||
|
|
@ -1,24 +1,14 @@
|
|||
let f ?email ?nick ?password request =
|
||||
|
||||
% begin match email, nick, password with
|
||||
% | Some email, Some nick, Some password ->
|
||||
% begin match User.register ~email ~nick ~password with
|
||||
% | Error e ->
|
||||
Error: <%s e %>
|
||||
% | Ok _ (* TODO: do not match on _ *) ->
|
||||
User created !
|
||||
% end;
|
||||
% | _ ->
|
||||
let f request =
|
||||
<%s! Dream.form_tag ~action:"/register" request %>
|
||||
<div class="mb-3">
|
||||
<label for="nick" class="form-label">Nick</label>
|
||||
<input name="nick" type="text" class="form-control" id="nick" aria-describedby="nickHelp">
|
||||
<div id="nickHelp" class="form-text">Who are u ?</div>
|
||||
<input name="nick" type="text" class="form-control" id="nick" aria-describedby="nick-help">
|
||||
<div id="nick-help" class="form-text">Choose a nickname</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Email address</label>
|
||||
<input name="email" type="email" class="form-control" id="email" aria-describedby="emailHelp">
|
||||
<div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
|
||||
<input name="email" type="email" class="form-control" id="email" aria-describedby="email-help">
|
||||
<div id="email-help" class="form-text">We'll never share your email with anyone else.</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="password" class="form-label">Password</label>
|
||||
|
|
@ -26,4 +16,3 @@ User created !
|
|||
</div>
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</form>
|
||||
% end;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue