libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
lws-jwt-auth.h
Go to the documentation of this file.
1/*
2 * libwebsockets - small server side websockets and web server implementation
3 *
4 * Copyright (C) 2010 - 2026 Andy Green <andy@warmcat.com>
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 */
16
17#if !defined(_LWS_JWT_AUTH_H_)
18#define _LWS_JWT_AUTH_H_
19
20#define LWS_SSO_MAX_COOKIE 4096
21struct lws_jwt_auth;
22
23/* States emitted via the callback */
24#define LWS_JWT_AUTH_STATE_REAUTH 1
25#define LWS_JWT_AUTH_STATE_EXPIRED 2
26
27typedef int (*lws_jwt_auth_cb_t)(struct lws_jwt_auth *ja, int state, void *user);
28
44LWS_VISIBLE LWS_EXTERN struct lws_jwt_auth *
45lws_jwt_auth_create(struct lws *wsi, struct lws_jwk *jwk,
46 const char *cookie_name,
47 lws_jwt_auth_cb_t cb, void *user);
48
59lws_jwt_auth_query_grant(struct lws_jwt_auth *ja, const char *service_name);
60
69LWS_VISIBLE LWS_EXTERN const char *
70lws_jwt_auth_get_sub(struct lws_jwt_auth *ja);
71
79LWS_VISIBLE LWS_EXTERN const char *
80lws_jwt_auth_get_did(struct lws_jwt_auth *ja);
81
90lws_jwt_auth_get_uid(struct lws_jwt_auth *ja);
91
100lws_jwt_auth_get_exp(struct lws_jwt_auth *ja);
101
110lws_jwt_auth_get_sec(struct lws_jwt_auth *ja);
111
118lws_jwt_auth_count_grants(struct lws_jwt_auth *ja);
119
130lws_jwt_auth_update(struct lws_jwt_auth *ja, const char *jwt);
131
138lws_jwt_auth_destroy(struct lws_jwt_auth **ja);
139
140#endif /* _LWS_JWT_AUTH_H_ */
unsigned int uint32_t
#define LWS_EXTERN
#define LWS_VISIBLE
int(* lws_jwt_auth_cb_t)(struct lws_jwt_auth *ja, int state, void *user)
LWS_VISIBLE LWS_EXTERN int lws_jwt_auth_update(struct lws_jwt_auth *ja, const char *jwt)
LWS_VISIBLE LWS_EXTERN uint32_t lws_jwt_auth_get_sec(struct lws_jwt_auth *ja)
LWS_VISIBLE LWS_EXTERN uint32_t lws_jwt_auth_get_uid(struct lws_jwt_auth *ja)
LWS_VISIBLE LWS_EXTERN uint64_t lws_jwt_auth_get_exp(struct lws_jwt_auth *ja)
LWS_VISIBLE LWS_EXTERN int lws_jwt_auth_query_grant(struct lws_jwt_auth *ja, const char *service_name)
LWS_VISIBLE LWS_EXTERN const char * lws_jwt_auth_get_did(struct lws_jwt_auth *ja)
LWS_VISIBLE LWS_EXTERN const char * lws_jwt_auth_get_sub(struct lws_jwt_auth *ja)
LWS_VISIBLE LWS_EXTERN struct lws_jwt_auth * lws_jwt_auth_create(struct lws *wsi, struct lws_jwk *jwk, const char *cookie_name, lws_jwt_auth_cb_t cb, void *user)
LWS_VISIBLE LWS_EXTERN uint32_t lws_jwt_auth_count_grants(struct lws_jwt_auth *ja)
LWS_VISIBLE LWS_EXTERN void lws_jwt_auth_destroy(struct lws_jwt_auth **ja)