檢視原始碼 mod_auth (inets v9.3.1)

使用文字檔案、Dets 或 Mnesia 資料庫進行使用者身份驗證。

此模組提供使用文字檔案、Dets 資料庫或 Mnesia 資料庫進行基本使用者身份驗證的功能。

另請參閱

httpd, mod_alias

摘要

函式

add_group_member/3add_group_member/4add_group_member/5 各自將使用者新增至群組。如果群組不存在,則會建立該群組,並將使用者新增至該群組。成功操作後,此函式會傳回 true。當呼叫 add_group_members/3 時,選項 PortDir 為必填。

add_user(UserName, Password, UserData, Address, Port, Dir) -> true | {error, Reason}

delete_group/2delete_group/3delete_group/4 各自刪除指定的群組並傳回 true。如果發生錯誤,則會傳回 {error, Reason}。當呼叫 delete_group/2 時,選項 PortDir 為必填。

delete_group_member/3delete_group_member/4delete_group_member/5 各自從群組中刪除使用者。如果群組或使用者不存在,此函式會傳回錯誤,否則傳回 true。當呼叫 delete_group_member/3 時,選項 PortDir 為必填。

delete_user/2delete_user/3delete_user/4 各自從使用者資料庫中刪除使用者。如果操作成功,此函式會傳回 true。如果發生錯誤,則會傳回 {error, Reason}。當呼叫 delete_user/2 時,選項 PortDir 為必填。

get_user/2get_user/3get_user/4 各自傳回包含特定使用者使用者資料的 httpd_user/0 記錄。如果找不到使用者,則會傳回 {error, Reason}。當呼叫 get_user/2 時,選項 PortDir 為必填。

list_group_members/2list_group_members/3list_group_members/4 各自列出指定群組的成員。如果群組不存在或發生錯誤,則會傳回 {error, Reason}。當呼叫 list_group_members/2 時,選項 PortDir 為必填。

list_groups/1list_groups/2list_groups/3 各自列出所有可用的群組。如果發生錯誤,則會傳回 {error, Reason}。當呼叫 list_groups/1 時,選項 PortDir 為必填。

list_users/1list_users/2list_users/3 各自傳回特定 Port/Dir 的使用者資料庫中的使用者清單。當呼叫 list_users/1 時,選項 PortDir 為必填。

update_password/5update_password/6 各自更新指定目錄的 AuthAccessPassword。如果 NewPassword 等於 "NoPassword",則變更授權資料不需要密碼。如果 NewPassword 等於 "DummyPassword",則必須先變更密碼才能進行任何變更。

類型

連結至此類型

httpd_group()

檢視原始碼 (未匯出)
-type httpd_group() :: #httpd_group{name :: term(), userlist :: term()}.
連結至此類型

httpd_user()

檢視原始碼 (未匯出)
-type httpd_user() :: #httpd_user{username :: term(), password :: term(), user_data :: term()}.

函式

連結至此函式

add_group_member(GroupName, UserName, Options)

檢視原始碼
-spec add_group_member(GroupName, UserName, Options) -> true | {error, Reason}
                          when
                              GroupName :: string(),
                              UserName :: string(),
                              Options ::
                                  [{port, Port} |
                                   {addr, Address} |
                                   {dir, Directory} |
                                   {authPassword, AuthPassword}],
                              Port :: inet:port_number(),
                              Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                              Directory :: string(),
                              AuthPassword :: string(),
                              Reason :: term().

等同於 add_group_member/5

連結至此函式

add_group_member(GroupName, UserName, Port, Directory)

檢視原始碼
-spec add_group_member(GroupName, UserName, Port, Directory) -> true | {error, Reason}
                          when
                              GroupName :: string(),
                              UserName :: string(),
                              Port :: inet:port_number(),
                              Directory :: string(),
                              Reason :: term().

等同於 add_group_member/5

連結至此函式

add_group_member(GroupName, UserName, Address, Port, Directory)

檢視原始碼
-spec add_group_member(GroupName, UserName, Address, Port, Directory) -> true | {error, Reason}
                          when
                              GroupName :: string(),
                              UserName :: string(),
                              Port :: inet:port_number(),
                              Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                              Directory :: string(),
                              Reason :: term().

add_group_member/3add_group_member/4add_group_member/5 各自將使用者新增至群組。如果群組不存在,則會建立該群組,並將使用者新增至該群組。成功操作後,此函式會傳回 true。當呼叫 add_group_members/3 時,選項 PortDir 為必填。

連結至此函式

add_user(UserName, Options)

檢視原始碼
-spec add_user(UserName, Options) -> true | {error, Reason}
                  when
                      UserName :: string(),
                      Options ::
                          [{password, Password} |
                           {userData, UserData} |
                           {port, Port} |
                           {addr, Address} |
                           {dir, Directory} |
                           {authPassword, AuthPassword}],
                      Password :: string(),
                      UserData :: term(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      AuthPassword :: string(),
                      Reason :: term().

等同於 add_user/6

連結至此函式

add_user(UserName, Password, UserData, Port, Directory)

檢視原始碼
-spec add_user(UserName, Password, UserData, Port, Directory) -> true | {error, Reason}
                  when
                      UserName :: string(),
                      Password :: string(),
                      UserData :: term(),
                      Port :: inet:port_number(),
                      Directory :: string(),
                      Reason :: term().

等同於 add_user/6

連結至此函式

add_user(UserName, Password, UserData, Address, Port, Directory)

檢視原始碼
-spec add_user(UserName, Password, UserData, Address, Port, Directory) -> true | {error, Reason}
                  when
                      UserName :: string(),
                      Password :: string(),
                      UserData :: term(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      Reason :: term().

add_user(UserName, Password, UserData, Address, Port, Dir) -> true | {error, Reason}

add_user/2add_user/5add_user/6 各自將使用者新增至使用者資料庫。如果操作成功,此函式會傳回 true。如果發生錯誤,則會傳回 {error, Reason}。當呼叫 add_user/2 時,選項 PasswordUserDataPortDir 為必填。

連結至此函式

delete_group(GroupName, Options)

檢視原始碼
-spec delete_group(GroupName, Options) -> true | {error, Reason}
                      when
                          GroupName :: string(),
                          Options ::
                              [{port, Port} |
                               {addr, Address} |
                               {dir, Directory} |
                               {authPassword, AuthPassword}],
                          Port :: inet:port_number(),
                          Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                          Directory :: string(),
                          AuthPassword :: string(),
                          Reason :: term().

等同於 delete_group/4

連結至此函式

delete_group(GroupName, Port, Directory)

檢視原始碼
-spec delete_group(GroupName, Port, Directory) -> true | {error, Reason}
                      when
                          GroupName :: string(),
                          Port :: inet:port_number(),
                          Directory :: string(),
                          Reason :: term().

等同於 delete_group(GroupName, undefined, Port, Dir)

連結至此函式

delete_group(GroupName, Address, Port, Directory)

檢視原始碼
-spec delete_group(GroupName, Address, Port, Directory) -> true | {error, Reason}
                      when
                          GroupName :: string(),
                          Port :: inet:port_number(),
                          Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                          Directory :: string(),
                          Reason :: term().

delete_group/2delete_group/3delete_group/4 各自刪除指定的群組並傳回 true。如果發生錯誤,則會傳回 {error, Reason}。當呼叫 delete_group/2 時,選項 PortDir 為必填。

連結至此函式

delete_group_member(GroupName, UserName, Options)

檢視原始碼
-spec delete_group_member(GroupName, UserName, Options) -> true | {error, Reason}
                             when
                                 GroupName :: string(),
                                 UserName :: string(),
                                 Options ::
                                     [{port, Port} |
                                      {addr, Address} |
                                      {dir, Directory} |
                                      {authPassword, AuthPassword}],
                                 Port :: inet:port_number(),
                                 Address ::
                                     inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                 Directory :: string(),
                                 AuthPassword :: string(),
                                 Reason :: term().

等同於 delete_group_member/5

連結至此函式

delete_group_member(GroupName, UserName, Port, Directory)

檢視原始碼
-spec delete_group_member(GroupName, UserName, Port, Directory) -> true | {error, Reason}
                             when
                                 GroupName :: string(),
                                 UserName :: string(),
                                 Port :: inet:port_number(),
                                 Directory :: string(),
                                 Reason :: term().

等同於 delete_group_member/5

連結至此函式

delete_group_member(GroupName, UserName, Address, Port, Directory)

檢視原始碼
-spec delete_group_member(GroupName, UserName, Address, Port, Directory) -> true | {error, Reason}
                             when
                                 GroupName :: string(),
                                 UserName :: string(),
                                 Port :: inet:port_number(),
                                 Address ::
                                     inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                 Directory :: string(),
                                 Reason :: term().

delete_group_member/3delete_group_member/4delete_group_member/5 各自從群組中刪除使用者。如果群組或使用者不存在,此函式會傳回錯誤,否則傳回 true。當呼叫 delete_group_member/3 時,選項 PortDir 為必填。

連結至此函式

delete_user(UserName, Options)

檢視原始碼
-spec delete_user(UserName, Options) -> true | {error, Reason}
                     when
                         UserName :: string(),
                         Options ::
                             [{port, Port} |
                              {addr, Address} |
                              {dir, Directory} |
                              {authPassword, AuthPassword}],
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         AuthPassword :: string(),
                         Reason :: term().

等同於 delete_user/4

連結至此函式

delete_user(UserName, Port, Directory)

檢視原始碼
-spec delete_user(UserName, Port, Directory) -> true | {error, Reason}
                     when
                         UserName :: string(),
                         Port :: inet:port_number(),
                         Directory :: string(),
                         Reason :: term().

等同於 delete_user/4

連結至此函式

delete_user(UserName, Address, Port, Directory)

檢視原始碼
-spec delete_user(UserName, Address, Port, Directory) -> true | {error, Reason}
                     when
                         UserName :: string(),
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         Reason :: term().

delete_user/2delete_user/3delete_user/4 各自從使用者資料庫中刪除使用者。如果操作成功,此函式會傳回 true。如果發生錯誤,則會傳回 {error, Reason}。當呼叫 delete_user/2 時,選項 PortDir 為必填。

連結至此函式

get_user(UserName, Options)

檢視原始碼
-spec get_user(UserName, Options) -> {ok, User} | {error, Reason}
                  when
                      UserName :: string(),
                      Options ::
                          [{port, Port} |
                           {addr, Address} |
                           {dir, Directory} |
                           {authPassword, AuthPassword}],
                      User :: httpd_user(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      AuthPassword :: string(),
                      Reason :: term().

等同於 get_user/4

連結至此函式

get_user(UserName, Port, Directory)

檢視原始碼
-spec get_user(UserName, Port, Directory) -> {ok, User} | {error, Reason}
                  when
                      UserName :: string(),
                      User :: httpd_user(),
                      Port :: inet:port_number(),
                      Directory :: string(),
                      Reason :: term().

等同於 get_user/4

連結至此函式

get_user(UserName, Address, Port, Directory)

檢視原始碼
-spec get_user(UserName, Address, Port, Directory) -> {ok, User} | {error, Reason}
                  when
                      UserName :: string(),
                      User :: httpd_user(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      Reason :: term().

get_user/2get_user/3get_user/4 各自傳回包含特定使用者使用者資料的 httpd_user/0 記錄。如果找不到使用者,則會傳回 {error, Reason}。當呼叫 get_user/2 時,選項 PortDir 為必填。

連結至此函式

list_group_members(GroupName, Options)

檢視原始碼
-spec list_group_members(GroupName, Options) -> {ok, Users} | {error, Reason}
                            when
                                GroupName :: string(),
                                Options ::
                                    [{port, Port} |
                                     {addr, Address} |
                                     {dir, Directory} |
                                     {authPassword, AuthPassword}],
                                Port :: inet:port_number(),
                                Address ::
                                    inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                Directory :: string(),
                                Users :: [httpd_user()],
                                AuthPassword :: string(),
                                Reason :: term().

等同於 list_group_members/4

連結至此函式

list_group_members(GroupName, Port, Directory)

檢視原始碼
-spec list_group_members(GroupName, Port, Directory) -> {ok, Users} | {error, Reason}
                            when
                                GroupName :: string(),
                                Port :: inet:port_number(),
                                Directory :: string(),
                                Users :: [httpd_user()],
                                Reason :: term().

等同於 list_group_members/4

連結至此函式

list_group_members(GroupName, Address, Port, Directory)

檢視原始碼
-spec list_group_members(GroupName, Address, Port, Directory) -> {ok, Users} | {error, Reason}
                            when
                                GroupName :: string(),
                                Port :: inet:port_number(),
                                Address ::
                                    inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                Directory :: string(),
                                Users :: [httpd_user()],
                                Reason :: term().

list_group_members/2list_group_members/3list_group_members/4 各自列出指定群組的成員。如果群組不存在或發生錯誤,則會傳回 {error, Reason}。當呼叫 list_group_members/2 時,選項 PortDir 為必填。

-spec list_groups(Options) -> {ok, Groups} | {error, Reason}
                     when
                         Options ::
                             [{port, Port} |
                              {addr, Address} |
                              {dir, Directory} |
                              {authPassword, AuthPassword}],
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         Groups :: [httpd_group()],
                         AuthPassword :: string(),
                         Reason :: term().

等同於 list_groups/3

連結至此函式

list_groups(Port, Directory)

檢視原始碼
-spec list_groups(Port, Directory) -> {ok, Groups} | {error, Reason}
                     when
                         Port :: inet:port_number(),
                         Directory :: string(),
                         Groups :: [httpd_group()],
                         Reason :: term().

等同於 list_groups/3

連結至此函式

list_groups(Address, Port, Directory)

檢視原始碼
-spec list_groups(Address, Port, Directory) -> {ok, Groups} | {error, Reason}
                     when
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         Groups :: [httpd_group()],
                         Reason :: term().

list_groups/1list_groups/2list_groups/3 各自列出所有可用的群組。如果發生錯誤,則會傳回 {error, Reason}。當呼叫 list_groups/1 時,選項 PortDir 為必填。

-spec list_users(Options) -> {ok, Users} | {error, Reason}
                    when
                        Options ::
                            [{port, Port} |
                             {addr, Address} |
                             {dir, Directory} |
                             {authPassword, AuthPassword}],
                        Port :: inet:port_number(),
                        Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                        Directory :: string(),
                        Users :: [httpd_user()],
                        AuthPassword :: string(),
                        Reason :: atom().

等同於 list_users/3

連結至此函式

list_users(Port, Directory)

檢視原始碼 (自 OTP R14B01 起)
-spec list_users(Port, Directory) -> {ok, Users} | {error, Reason}
                    when
                        Port :: inet:port_number(),
                        Directory :: string(),
                        Users :: [httpd_user()],
                        Reason :: atom().

等同於 list_users/3

連結至此函式

list_users(Address, Port, Directory)

檢視原始碼
-spec list_users(Address, Port, Directory) -> {ok, Users} | {error, Reason}
                    when
                        Port :: inet:port_number(),
                        Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                        Directory :: string(),
                        Users :: [httpd_user()],
                        Reason :: atom().

list_users/1list_users/2list_users/3 各自傳回特定 Port/Dir 的使用者資料庫中的使用者清單。當呼叫 list_users/1 時,選項 PortDir 為必填。

連結至此函式

update_password(Port, Dir, OldPassword, NewPassword, NewPassword)

檢視原始碼
-spec update_password(Port, Dir, OldPassword, NewPassword, NewPassword) -> ok | {error, Reason}
                         when
                             Port :: inet:port_number(),
                             Dir :: string(),
                             OldPassword :: string(),
                             NewPassword :: string(),
                             Reason :: term().

等同於 update_password/6

連結至此函式

update_password(Address, Port, Dir, OldPassword, NewPassword, NewPassword)

檢視原始碼
-spec update_password(Address, Port, Dir, OldPassword, NewPassword, NewPassword) -> ok | {error, Reason}
                         when
                             Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                             Port :: inet:port_number(),
                             Dir :: string(),
                             OldPassword :: string(),
                             NewPassword :: string(),
                             Reason :: term().

update_password/5update_password/6 各自更新指定目錄的 AuthAccessPassword。如果 NewPassword 等於 "NoPassword",則變更授權資料不需要密碼。如果 NewPassword 等於 "DummyPassword",則必須先變更密碼才能進行任何變更。