diff options
| author | Omar Roth <omarroth@hotmail.com> | 2018-03-22 12:44:36 -0500 |
|---|---|---|
| committer | Omar Roth <omarroth@hotmail.com> | 2018-03-22 12:44:36 -0500 |
| commit | 2490833b6b844ff6dfd5bf8484ae563119422e5d (patch) | |
| tree | 71f26250cc10acd243fa581e2d5184f2ef0f3fc3 /src | |
| parent | 1d42e4465c24d556db79e8f4ea6ce36ea99c73d1 (diff) | |
| download | invidious-2490833b6b844ff6dfd5bf8484ae563119422e5d.tar.gz invidious-2490833b6b844ff6dfd5bf8484ae563119422e5d.tar.bz2 invidious-2490833b6b844ff6dfd5bf8484ae563119422e5d.zip | |
Add logout
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious.cr | 25 | ||||
| -rw-r--r-- | src/views/layout.ecr | 4 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index 73fb339f..969d2247 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -164,6 +164,14 @@ spawn do end end +before_all do |env| + if env.request.cookies["SID"]? + env.set "authorized", true + else + env.set "authorized", false + end +end + get "/" do |env| templated "index" end @@ -409,9 +417,15 @@ post "/login" do |env| login = client.get(login.headers["Location"], headers) headers = login.cookies.add_request_headers(headers) - # We are now logged in + login.cookies.each do |cookie| + host = URI.parse(env.request.headers["Host"]).host + cookie.extension = cookie.extension.not_nil!.gsub(".youtube.com", host) + end + + login.cookies.add_response_headers(env.response.headers) + env.redirect "/" rescue ex error_message = "Login failed" @@ -419,6 +433,15 @@ post "/login" do |env| end end +get "/logout" do |env| + env.request.cookies.each do |cookie| + cookie.expires = Time.new(1990, 1, 1) + end + + env.request.cookies.add_response_headers(env.response.headers) + env.redirect "/" +end + get "/redirect" do |env| if env.params.query["q"]? env.redirect env.params.query["q"] diff --git a/src/views/layout.ecr b/src/views/layout.ecr index f419ec58..f0ce5a3f 100644 --- a/src/views/layout.ecr +++ b/src/views/layout.ecr @@ -25,7 +25,11 @@ </form> </div> <div class="pure-u-1 pure-u-md-1-5"> + <% if env.get "authorized" %> + <a href="/logout" class="pure-menu-heading">Logout</a> + <% else %> <a href="/login" class="pure-menu-heading">Login</a> + <% end %> </div> </div> <%= content %> |
