esup-otp-api is a RESTful api using NodeJS to generate, send and verify one-time codes for [EsupPortail]
1.7.3
Runs on Node v20.11.1 and npm v10.2.4
Requires Mongodb
sudo service mongod start
- git clone https://github.com/EsupPortail/esup-otp-api.git
- npm install
- change the fields values in properties/esup.json to your installation, some explanations are in #how_to attributes
- in properties/esup.json, hostname of smtp server needs to be set to work
- npm start
esup-otp-api runs in http, if you want a secure mode you will need a reverse proxy.
- https
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
<Location />
ProxyPass http://127.0.0.1:3000/
ProxyPassReverse http://127.0.0.1:3000/
</Location>
- websocket
RewriteEngine On
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:3000/$1 [P]
[Unit]
Description=esup-otp-api nodejs app
Documentation=https://github.com/EsupPortail/esup-otp-api
After=network.target
[Service]
Type=simple
User=esup
WorkingDirectory=/opt/esup-otp-api
ExecStart=/usr/bin/node run
Restart=on-failure
[Install]
WantedBy=multi-user.target
npm test
Push method displays " à proximité de $city" on the mobile device.
It uses ip-location-api to get city location from browser IP.
This nodejs module is downloading & computing files into node_modules/ip-location-api/data/1kw/ through an internal task ran twice weekly.
Details:
- to update manually those files, run
ILA_FIELDS=city npm run updatedb
- where
city
comes from ip_location.reload - the directory data/1kw is computed from those fields (cf ip-location-api code)
MIT [EsupPortail]: https://www.esup-portail.org/