diff options
author | Chocobozzz <me@florianbigard.com> | 2020-04-29 09:04:42 +0200 |
---|---|---|
committer | Chocobozzz <chocobozzz@cpy.re> | 2020-05-04 16:21:39 +0200 |
commit | 9107d791e2eef9a1b24b0499dac8b9dbba8a792f (patch) | |
tree | f09b20f06008b094f3266b39063bc9785dfebf5f /server/tests/fixtures/peertube-plugin-test-external-auth-one/main.js | |
parent | 4a8d113b9b57d97ff13ad1608798eabca99643e4 (diff) | |
download | PeerTube-9107d791e2eef9a1b24b0499dac8b9dbba8a792f.tar.gz PeerTube-9107d791e2eef9a1b24b0499dac8b9dbba8a792f.tar.zst PeerTube-9107d791e2eef9a1b24b0499dac8b9dbba8a792f.zip |
Add external login tests
Diffstat (limited to 'server/tests/fixtures/peertube-plugin-test-external-auth-one/main.js')
-rw-r--r-- | server/tests/fixtures/peertube-plugin-test-external-auth-one/main.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/server/tests/fixtures/peertube-plugin-test-external-auth-one/main.js b/server/tests/fixtures/peertube-plugin-test-external-auth-one/main.js new file mode 100644 index 000000000..f29fd1f30 --- /dev/null +++ b/server/tests/fixtures/peertube-plugin-test-external-auth-one/main.js | |||
@@ -0,0 +1,67 @@ | |||
1 | async function register ({ | ||
2 | registerExternalAuth, | ||
3 | peertubeHelpers | ||
4 | }) { | ||
5 | { | ||
6 | const result = registerExternalAuth({ | ||
7 | authName: 'external-auth-1', | ||
8 | authDisplayName: 'External Auth 1', | ||
9 | onLogout: user => peertubeHelpers.logger.info('On logout %s', user.username), | ||
10 | onAuthRequest: (req, res) => { | ||
11 | const username = req.query.username | ||
12 | |||
13 | result.userAuthenticated({ | ||
14 | req, | ||
15 | res, | ||
16 | username, | ||
17 | email: username + '@example.com' | ||
18 | }) | ||
19 | } | ||
20 | }) | ||
21 | } | ||
22 | |||
23 | { | ||
24 | const result = registerExternalAuth({ | ||
25 | authName: 'external-auth-2', | ||
26 | authDisplayName: 'External Auth 2', | ||
27 | onAuthRequest: (req, res) => { | ||
28 | result.userAuthenticated({ | ||
29 | req, | ||
30 | res, | ||
31 | username: 'kefka', | ||
32 | email: 'kefka@example.com', | ||
33 | role: 0, | ||
34 | displayName: 'Kefka Palazzo' | ||
35 | }) | ||
36 | }, | ||
37 | hookTokenValidity: (options) => { | ||
38 | if (options.type === 'refresh') { | ||
39 | return { valid: false } | ||
40 | } | ||
41 | |||
42 | if (options.type === 'access') { | ||
43 | const token = options.token | ||
44 | const now = new Date() | ||
45 | now.setTime(now.getTime() - 5000) | ||
46 | |||
47 | const createdAt = new Date(token.createdAt) | ||
48 | |||
49 | return { valid: createdAt.getTime() >= now.getTime() } | ||
50 | } | ||
51 | |||
52 | return { valid: true } | ||
53 | } | ||
54 | }) | ||
55 | } | ||
56 | } | ||
57 | |||
58 | async function unregister () { | ||
59 | return | ||
60 | } | ||
61 | |||
62 | module.exports = { | ||
63 | register, | ||
64 | unregister | ||
65 | } | ||
66 | |||
67 | // ########################################################################### | ||