owncast/test
Gabe Kangas b835de2dc4
IndieAuth support (#1811)
* Able to authenticate user against IndieAuth. For #1273

* WIP server indieauth endpoint. For https://github.com/owncast/owncast/issues/1272

* Add migration to remove access tokens from user

* Add authenticated bool to user for display purposes

* Add indieauth modal and auth flair to display names. For #1273

* Validate URLs and display errors

* Renames, cleanups

* Handle relative auth endpoint paths. Add error handling for missing redirects.

* Disallow using display names in use by registered users. Closes #1810

* Verify code verifier via code challenge on callback

* Use relative path to authorization_endpoint

* Post-rebase fixes

* Use a timestamp instead of a bool for authenticated

* Propertly handle and display error in modal

* Use auth'ed timestamp to derive authenticated flag to display in chat

* don't redirect unless a URL is present

avoids redirecting to `undefined` if there was an error

* improve error message if owncast server URL isn't set

* fix IndieAuth PKCE implementation

use SHA256 instead of SHA1, generates a longer code verifier (must be 43-128 chars long), fixes URL-safe SHA256 encoding

* return real profile data for IndieAuth response

* check the code verifier in the IndieAuth server

* Linting

* Add new chat settings modal anad split up indieauth ui

* Remove logging error

* Update the IndieAuth modal UI. For #1273

* Add IndieAuth repsonse error checking

* Disable IndieAuth client if server URL is not set.

* Add explicit error messages for specific error types

* Fix bad logic

* Return OAuth-keyed error responses for indieauth server

* Display IndieAuth error in plain text with link to return to main page

* Remove redundant check

* Add additional detail to error

* Hide IndieAuth details behind disclosure details

* Break out migration into two steps because some people have been runing dev in production

* Add auth option to user dropdown

Co-authored-by: Aaron Parecki <aaron@parecki.com>
2022-04-21 14:55:26 -07:00
..
automated IndieAuth support (#1811) 2022-04-21 14:55:26 -07:00
load Bump moment from 2.29.1 to 2.29.2 in /test/load (#1819) 2022-04-09 09:11:35 -07:00
.gitignore Point fakechat test script to localhost by default. Commit package.json 2021-01-02 12:16:53 -08:00
fakeChat.js Chat refactor + persistent backing chat users (#1163) 2021-07-19 19:22:29 -07:00
ocTestStream.sh Force a gop and framerate in test content 2021-05-05 18:21:00 -07:00
package-lock.json Bump node-fetch from 2.6.6 to 2.6.7 in /test (#1700) 2022-01-24 10:44:04 -08:00
package.json Bump node-fetch from 2.6.6 to 2.6.7 in /test (#1700) 2022-01-24 10:44:04 -08:00
README.md Created a fake chat message generator script for testing 2020-09-24 23:52:54 -07:00
userColorsTest.js Update chat styling 2020-10-16 17:46:44 -07:00

Tests

Load Tests

  1. Install artillery from NPM/Yarn/Whatever Javascript package manager is popular this week.
  2. Start an instance of the server on localhost.
  3. artillery run httpGetTest.yaml for endpoint load tests.
  4. artillery run websocketTest.yaml for websocket load tests.

Chat test

This will send automated fake chat messages to your localhost instance. Edit the messages, usernames or point to a different instance.

  1. npm install
  2. node fakeChat.js