mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 21:11:30 +08:00 
			
		
		
		
	Merge pull request #1686 from TriliumNext/refactor_remove-cookiePath
refactor(cookiePath): remove non-working cookiePath option
This commit is contained in:
		
						commit
						9d1e99f2e8
					
				| @ -30,13 +30,6 @@ trustedReverseProxy=false | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| [Session] | [Session] | ||||||
| # Use this setting to set a custom value for the "Path" Attribute value of the session cookie. |  | ||||||
| # This can be useful, when you have several instances running on the same domain, under different paths (e.g. by using a reverse proxy). |  | ||||||
| # It prevents your instances from overwriting each others' cookies, allowing you to stay logged in multiple instances simultanteously. |  | ||||||
| # E.g. if you have instances running under https://your-domain.com/triliumNext/instanceA and https://your-domain.com/triliumNext/instanceB |  | ||||||
| # you would want to set the cookiePath value to "/triliumNext/instanceA" for your first and "/triliumNext/instanceB" for your second instance |  | ||||||
| cookiePath=/ |  | ||||||
| 
 |  | ||||||
| # Use this setting to set a custom value for the "Max-Age" Attribute of the session cookie. | # Use this setting to set a custom value for the "Max-Age" Attribute of the session cookie. | ||||||
| # This controls how long your session will be valid, before it expires and you need to log in again, when you use the "Remember Me" option. | # This controls how long your session will be valid, before it expires and you need to log in again, when you use the "Remember Me" option. | ||||||
| # Value needs to be entered in Seconds. | # Value needs to be entered in Seconds. | ||||||
|  | |||||||
| @ -40,6 +40,7 @@ Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04. | |||||||
|             proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain |             proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |      | ||||||
|     # This part is for HTTPS forced |     # This part is for HTTPS forced | ||||||
|     server { |     server { | ||||||
|         listen 80; |         listen 80; | ||||||
| @ -47,3 +48,23 @@ Configure Nginx proxy and HTTPS. The operating system here is Ubuntu 18.04. | |||||||
|         return 301 https://$server_name$request_uri; |         return 301 https://$server_name$request_uri; | ||||||
|     } |     } | ||||||
|     ``` |     ``` | ||||||
|  | 4.  Alternatively if you want to serve the instance under a different path (useful e.g. if you want to serve multiple instances), update the location block like so: | ||||||
|  |      | ||||||
|  |     *   update the location with your desired path (make sure to not leave a trailing slash "/", if your `proxy_pass` does not end on a slash as well) | ||||||
|  |     *   add the `proxy_cookie_path` directive with the same path: this allows you to stay logged in at multiple instances at the same time. | ||||||
|  |      | ||||||
|  |     ``` | ||||||
|  |         location /trilium/instance-one { | ||||||
|  |             proxy_set_header Host $host; | ||||||
|  |             proxy_set_header X-Real-IP $remote_addr; | ||||||
|  |             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||||
|  |             proxy_set_header X-Forwarded-Proto $scheme; | ||||||
|  |             proxy_set_header Upgrade $http_upgrade; | ||||||
|  |             proxy_set_header Connection "upgrade"; | ||||||
|  |             proxy_pass http://127.0.0.1:8080; # change it to a different port if non-default is used | ||||||
|  |             proxy_cookie_path / /trilium/instance-one | ||||||
|  |             proxy_read_timeout 90; | ||||||
|  |             proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain | ||||||
|  |         } | ||||||
|  |      | ||||||
|  |     ``` | ||||||
| @ -34,6 +34,7 @@ server { | |||||||
|         proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain |         proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | 
 | ||||||
| # This part is for HTTPS forced | # This part is for HTTPS forced | ||||||
| server { | server { | ||||||
|     listen 80; |     listen 80; | ||||||
| @ -41,4 +42,27 @@ server { | |||||||
|     return 301 https://$server_name$request_uri; |     return 301 https://$server_name$request_uri; | ||||||
| }</code></pre> | }</code></pre> | ||||||
|   </li> |   </li> | ||||||
|  |   <li> | ||||||
|  |     <p>Alternatively if you want to serve the instance under a different path | ||||||
|  |       (useful e.g. if you want to serve multiple instances), update the location | ||||||
|  |       block like so:</p> | ||||||
|  |     <ul> | ||||||
|  |       <li>update the location with your desired path (make sure to not leave a trailing | ||||||
|  |         slash "/", if your <code>proxy_pass</code> does not end on a slash as well)</li> | ||||||
|  |       <li>add the <code>proxy_cookie_path</code> directive with the same path: this | ||||||
|  |         allows you to stay logged in at multiple instances at the same time.</li> | ||||||
|  |     </ul><pre><code class="language-text-x-trilium-auto">    location /trilium/instance-one { | ||||||
|  |         proxy_set_header Host $host; | ||||||
|  |         proxy_set_header X-Real-IP $remote_addr; | ||||||
|  |         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||||
|  |         proxy_set_header X-Forwarded-Proto $scheme; | ||||||
|  |         proxy_set_header Upgrade $http_upgrade; | ||||||
|  |         proxy_set_header Connection "upgrade"; | ||||||
|  |         proxy_pass http://127.0.0.1:8080; # change it to a different port if non-default is used | ||||||
|  |         proxy_cookie_path / /trilium/instance-one | ||||||
|  |         proxy_read_timeout 90; | ||||||
|  |         proxy_redirect http://127.0.0.1:8080 https://trilium.example.net; # change them based on your IP, port and domain | ||||||
|  |     } | ||||||
|  | </code></pre> | ||||||
|  |   </li> | ||||||
| </ol> | </ol> | ||||||
| @ -1,12 +1,11 @@ | |||||||
| import { doubleCsrf } from "csrf-csrf"; | import { doubleCsrf } from "csrf-csrf"; | ||||||
| import sessionSecret from "../services/session_secret.js"; | import sessionSecret from "../services/session_secret.js"; | ||||||
| import { isElectron } from "../services/utils.js"; | import { isElectron } from "../services/utils.js"; | ||||||
| import config from "../services/config.js"; |  | ||||||
| 
 | 
 | ||||||
| const doubleCsrfUtilities = doubleCsrf({ | const doubleCsrfUtilities = doubleCsrf({ | ||||||
|     getSecret: () => sessionSecret, |     getSecret: () => sessionSecret, | ||||||
|     cookieOptions: { |     cookieOptions: { | ||||||
|         path: config.Session.cookiePath, |         path: "/", | ||||||
|         secure: false, |         secure: false, | ||||||
|         sameSite: "strict", |         sameSite: "strict", | ||||||
|         httpOnly: !isElectron // set to false for Electron, see https://github.com/TriliumNext/Notes/pull/966
 |         httpOnly: !isElectron // set to false for Electron, see https://github.com/TriliumNext/Notes/pull/966
 | ||||||
|  | |||||||
| @ -11,7 +11,7 @@ const sessionParser = session({ | |||||||
|     resave: false, // true forces the session to be saved back to the session store, even if the session was never modified during the request.
 |     resave: false, // true forces the session to be saved back to the session store, even if the session was never modified during the request.
 | ||||||
|     saveUninitialized: false, // true forces a session that is "uninitialized" to be saved to the store. A session is uninitialized when it is new but not modified.
 |     saveUninitialized: false, // true forces a session that is "uninitialized" to be saved to the store. A session is uninitialized when it is new but not modified.
 | ||||||
|     cookie: { |     cookie: { | ||||||
|         path: config.Session.cookiePath, |         path: "/", | ||||||
|         httpOnly: true, |         httpOnly: true, | ||||||
|         maxAge: config.Session.cookieMaxAge * 1000 // needs value in milliseconds
 |         maxAge: config.Session.cookieMaxAge * 1000 // needs value in milliseconds
 | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -31,7 +31,6 @@ export interface TriliumConfig { | |||||||
|         trustedReverseProxy: boolean | string; |         trustedReverseProxy: boolean | string; | ||||||
|     }; |     }; | ||||||
|     Session: { |     Session: { | ||||||
|         cookiePath: string; |  | ||||||
|         cookieMaxAge: number; |         cookieMaxAge: number; | ||||||
|     }; |     }; | ||||||
|     Sync: { |     Sync: { | ||||||
| @ -84,9 +83,6 @@ const config: TriliumConfig = { | |||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     Session: { |     Session: { | ||||||
|         cookiePath: |  | ||||||
|             process.env.TRILIUM_SESSION_COOKIEPATH || iniConfig?.Session?.cookiePath || "/", |  | ||||||
| 
 |  | ||||||
|         cookieMaxAge: |         cookieMaxAge: | ||||||
|             parseInt(String(process.env.TRILIUM_SESSION_COOKIEMAXAGE)) || parseInt(iniConfig?.Session?.cookieMaxAge) || 21 * 24 * 60 * 60 // 21 Days in Seconds
 |             parseInt(String(process.env.TRILIUM_SESSION_COOKIEMAXAGE)) || parseInt(iniConfig?.Session?.cookieMaxAge) || 21 * 24 * 60 * 60 // 21 Days in Seconds
 | ||||||
|     }, |     }, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran