aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/world/service/authentication.lux
blob: 4c66ddc1cf64a40aa9215510d023dff37fba5826 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(.module:
  [library
   [lux #*
    [control
     [try (#+ Try)]
     [security
      [capability (#+ Capability)]]]]])

(type: #export (Can-Register ! account secret value)
  (Capability [account secret value] (! (Try Any))))

(type: #export (Can-Authenticate ! account secret value)
  (Capability [account secret] (! (Try value))))

(type: #export (Can-Reset ! account secret)
  (Capability [account secret] (! (Try Any))))

(type: #export (Can-Forget ! account)
  (Capability [account] (! (Try Any))))

(type: #export (Service ! account secret value)
  {#can-register (Can-Register ! account secret value)
   #can-authenticate (Can-Authenticate ! account secret value)
   #can-reset (Can-Reset ! account secret)
   #can-forget (Can-Forget ! account)})