File: mg_set_auth_handler.md

package info (click to toggle)
civetweb 1.16%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,576 kB
  • sloc: ansic: 32,463; cpp: 1,374; sh: 480; javascript: 204; makefile: 119; php: 11; perl: 6; python: 3
file content (39 lines) | stat: -rw-r--r-- 1,880 bytes parent folder | download | duplicates (2)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Civetweb API Reference

### `mg_set_auth_handler( ctx, uri, handler, cbdata );`

### Parameters

| Parameter | Type | Description |
| :--- | :--- | :--- |
|**`ctx`**|`struct mg_context *`|The context on which the handler must be set|
|**`uri`**|`const char *`|The URI for the authorization handler|
|**`handler`**|`mg_authorization_handler`|Callback function doing the actual authorization|
|**`cbdata`**|`void *`|Optional user data|

`int mg_authorization_handler( struct mg_connection *conn, void *cbdata );`

### Return Value

*none*

### Description

The function `mg_set_auth_handler()` hooks an authorization function to an URI to check if a user is authorized to visit that URI. The check is performed by a callback function of type `mg_authorization_handler`. The callback function is passed two parameters: the current connection and a pointer to optional user defined data which was passed to `mg_set_auth_handler()` when the callback was hooked to the URI.

The callback function can return **0** to deny access, and **1** to allow access.

To allow maximum flexibility in the HTTP response status code and message when denying access, the callback should
send the HTTP response itself. 
The callback may send use [`mg_send_digest_access_authentication_request`](mg_send_digest_access_authentication_request.md) to ask for http digest authentication,
it may send a http 403 status code using [`mg_send_http_error`](mg_set_request_handler.md), 
or a 303 redirect to a login page using [`mg_send_http_redirect`](mg_send_http_redirect.md) 
or any other response.

The `mg_set_auth_handler()` function is very similar in use to [`mg_set_request_handler()`](mg_set_request_handler.md).

### See Also

* [`mg_set_request_handler();`](mg_set_request_handler.md)
* [`mg_send_http_error();`](mg_set_request_handler.md)
* [`mg_send_http_redirect();`](mg_send_http_redirect.md)