mirror of
https://framagit.org/les/gancio.git
synced 2025-01-31 16:42:22 +01:00
[doc] oauth
This commit is contained in:
parent
3a698903f6
commit
392bdfa961
35 changed files with 6937 additions and 23 deletions
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
4
docs/_site/assets/css/fa.min.css
vendored
Normal file
4
docs/_site/assets/css/fa.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
90
docs/_site/assets/css/premonition.css
Normal file
90
docs/_site/assets/css/premonition.css
Normal file
|
@ -0,0 +1,90 @@
|
|||
.premonition {
|
||||
display: grid;
|
||||
grid-template-columns: 43px auto;
|
||||
padding-top: 13px;
|
||||
padding-bottom: 6px;
|
||||
margin: 30px 0 30px 0;
|
||||
background-color: #e3edf2;
|
||||
border-left: 4px solid #5bc0de;
|
||||
color: #5bc0de;
|
||||
}
|
||||
|
||||
.premonition code {
|
||||
background-color: #fff;
|
||||
color: #5bc0de;
|
||||
}
|
||||
|
||||
.premonition .header {
|
||||
font-weight: 700;
|
||||
font-size: 15px;
|
||||
color: #5bc0de;
|
||||
}
|
||||
|
||||
.premonition .fa {
|
||||
font-size: 18px;
|
||||
opacity: .3;
|
||||
padding-top: 2px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.premonition .content {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
.premonition.info {
|
||||
background-color: #f3f8f3;
|
||||
color: #50af51;
|
||||
border-color: #50af51;
|
||||
}
|
||||
|
||||
.premonition.info a {
|
||||
color: #50af51;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.premonition.info code {
|
||||
color: #50af51;
|
||||
}
|
||||
|
||||
.premonition.info .header {
|
||||
color: #50af51;
|
||||
}
|
||||
|
||||
.premonition.warning {
|
||||
background-color: #fcf8f2;
|
||||
color: #f0ad4e;
|
||||
border-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.premonition.warning a {
|
||||
color: #f0ad4e;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.premonition.warning code {
|
||||
color: #f0ad4e;
|
||||
}
|
||||
|
||||
.premonition.warning .header {
|
||||
color: #f0ad4e;
|
||||
}
|
||||
|
||||
.premonition.error {
|
||||
background-color: #fdf7f7;
|
||||
color: #d9534f;
|
||||
border-color: #d9534f;
|
||||
}
|
||||
|
||||
.premonition.error a {
|
||||
color: #d9534f;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.premonition.error code {
|
||||
color: #d9534f;
|
||||
}
|
||||
|
||||
.premonition.error .header {
|
||||
color: #d9534f;
|
||||
}
|
BIN
docs/_site/assets/fonts/FontAwesome.otf
Normal file
BIN
docs/_site/assets/fonts/FontAwesome.otf
Normal file
Binary file not shown.
BIN
docs/_site/assets/fonts/fontawesome-webfont.eot
Normal file
BIN
docs/_site/assets/fonts/fontawesome-webfont.eot
Normal file
Binary file not shown.
2671
docs/_site/assets/fonts/fontawesome-webfont.svg
Normal file
2671
docs/_site/assets/fonts/fontawesome-webfont.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 434 KiB |
BIN
docs/_site/assets/fonts/fontawesome-webfont.ttf
Normal file
BIN
docs/_site/assets/fonts/fontawesome-webfont.ttf
Normal file
Binary file not shown.
BIN
docs/_site/assets/fonts/fontawesome-webfont.woff
Normal file
BIN
docs/_site/assets/fonts/fontawesome-webfont.woff
Normal file
Binary file not shown.
BIN
docs/_site/assets/fonts/fontawesome-webfont.woff2
Normal file
BIN
docs/_site/assets/fonts/fontawesome-webfont.woff2
Normal file
Binary file not shown.
|
@ -15,83 +15,97 @@
|
|||
},
|
||||
"2": {
|
||||
"id": "2",
|
||||
"title": "Changelog",
|
||||
"content": "All notable changes to this project will be documented in this file. unreleased oauth server implementation 0.17.14 [locale] add catalan [fix] fedi outbox 0.17.12 [ui] add admin section on event page in mobile #63 [fix] remove username from users 0.17.11 [refactor] s/fed_user/ap_user [fedi] admin moderation 0.17.10 [refactor] s/comment/resource/ [refactor] remove username field [doc] about and federation 0.17.8 [fix] use thumb in head og:img only 0.17.7 [fix] #58 wrong url for RSS feed 0.17.5 [fedi] comments moderation [fedi] user moderation [fedi] instance moderation [hotfix] cli setup [doc] fix debian upgrade [fix] comment ap_id key length [fix] fediverse signature [fedi] better /inbox /followers response 0.17.0 [feat] add rss link @homepage [ui] add lot of explanation text [ui] show copied messages [admin] show n of unconfirmed users/events [ui] spinner while event image is loading [fedi] add follow me dialog in event [fix] do not add reminders in full ics export [fix] remove spaces from hashtags sent via AP [fix] #56 unconfirmed event sent via ap [fix] localPosts/comments in fediverse stats 0.16.0 [feat] embed event as widget in external website [fedi] instances moderation in admin [fix] toggle event visibility by owner [fedi] manage unboost [refactoring] auth as middleware 0.15.7 [fix] minor 0.15.6 [fix] tags in event 0.15.5 [model] migrations setup [feat] embeddable event widget/iframe 0.15.2 [fix] delete event [fix] wrong html hierarchy 0.15.0 [fix] backtop icon on mobile [fix] webfinger nodeinfo return real node info [fix] register email confirmation [feat] add federation settings (enable comments/boost/like) [feat] new event page layout [feat] could download .ics of event [feat] add cors to feed requests [refactoring] settings middleware, cleaning codebase 0.14.18 [improve] better quality for images [fix] password recovery email [feat] new action field for notification [feat] add DEBUG env variable in docker-compose.yml [style] fixed width in confirmation events table [fix] #38 timezone issue in rss export and using tor… 0.14.17 [fix] image previews from external website [fix] docker-compose postgresql docs [improve] export white logo to fediverse",
|
||||
"url": "https://gancio.org/changelog",
|
||||
"relUrl": "/changelog"
|
||||
},
|
||||
"3": {
|
||||
"id": "3",
|
||||
"title": "Configuration",
|
||||
"content": "Configuration Main gancio configuration is done with a configuration file. This shoud be a .json or a .js file and could be specified using the --config flag. eg. gancio start --config ./config.json eg. pm2 start gancio start -- --config ~/config.json Title Description BaseURL Server Database Upload path SMTP Admin_email Favicon User locale Secret Default settings Title The title will be in rss feed, in html head and in emails: "title": "Gancio" Description "description": "a shared agenda for local communities" BaseURL URL where your site will be accessible (include http or https): "baseurl": "https://gancio.cisti.org" Server This probably support unix socket too :D "server": { "host": "localhost", "port": 13120 } Database DB configuration, look here for options. "db": { "dialect": "sqlite", "storage": "/tmp/db.sqlite" } Upload path Where to save images "upload_path": "./uploads" SMTP SMTP configuration. Gancio should send emails at following events: the admin should receive emails of anon event (if enabled) to confirm them. the admin should receive emails of registration request (if enabled) to confirm them. an user should receive an email of registration requested. an user should receive an email of confirmed registration. an user should receive a confirmation email when subscribed directly by admin. "smtp": { "auth": { "user": "", "pass": "" }, "secure": true, "host": "" } Admin_email Email of administrator. Note that email from gancio comes from this email and that the SMTP configuration above should allow to use this address as from. Favicon You could specify another favicon. This is also used as logo (top-left corner): "favicon": "./favicon.ico" User locale Probably you want to modify some text for your specific community, that’s why we thought the user_locale configuration: you can specify your version of each string of gancio making a directory with your locales inside. For example, let’s say you want to modify the text inside the /about page: mkdir /opt/gancio/user_locale put something like this in /opt/gancio/user_locale/en.js to override the about in english: export default { about: 'A new about' } and then point the user_locale configuration to that directory: "user_locale": "/opt/gancio/user_locale" Watch here for a list of strings you can override. :warning: Note that a restart is needed when you change user_locale’s content. Secret Default settings { "title": "Gancio", "description": "A shared agenda for local communities", "baseurl": "http://localhost:13120", "server": { "host": "0.0.0.0", "port": 13120 }, "db": { "dialect": "sqlite", "storage": "/tmp/db.sqlite" }, "upload_path": "./", "favicon": "../dist/favicon.ico", "smtp": { "auth": { "user": "", "pass": "" }, "secure": true, "host": "" }, "admin_email": "", "secret": "notsosecret" }",
|
||||
"url": "https://gancio.org/config",
|
||||
"relUrl": "/config"
|
||||
},
|
||||
"3": {
|
||||
"id": "3",
|
||||
"4": {
|
||||
"id": "4",
|
||||
"title": "Debian",
|
||||
"content": "Debian installation Install Node.js & yarn (from root) curl -sL https://deb.nodesource.com/setup_12.x | bash - apt-get install -y nodejs curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list apt-get update && apt-get install yarn source Install Gancio yarn global add gancio --prod Setup with postgreSQL (optional as you can choose sqlite) apt-get install postgresql # Create the database su postgres -c psql postgres=# create database gancio; postgres=# create user gancio with encrypted password 'gancio'; postgres=# grant all privileges on database gancio to gancio; Create a user to run gancio from adduser gancio su gancio Launch interactive setup gancio setup --config config.json Start gancio start --config config.json Point your web browser to http://localhost:13120 or where you selected during setup. Setup nginx as a proxy To deploy gancio in production you should use something like pm2: sudo yarn global add pm2 pm2 start gancio -- --config config.json # Run this command to run your application as a service and automatically restart after a reboot: pm2 startup # read the output! sudo pm2 startup -u gancio Upgrade sudo yarn global add gancio sudo service pm2 restart",
|
||||
"url": "https://gancio.org/install/debian",
|
||||
"relUrl": "/install/debian"
|
||||
},
|
||||
"4": {
|
||||
"id": "4",
|
||||
"5": {
|
||||
"id": "5",
|
||||
"title": "Hacking",
|
||||
"content": "Development Stack Gancio is built with following technologies: Nuxt.js Vue.js Express Node.js Sequelize Element.ui Testing on your own machine Download source git clone https://framagit.org/les/gancio Install dependencies yarn Hacking yarn dev Please use the issue board and the forum to discuss any modification.",
|
||||
"url": "https://gancio.org/dev",
|
||||
"relUrl": "/dev"
|
||||
},
|
||||
"5": {
|
||||
"id": "5",
|
||||
"6": {
|
||||
"id": "6",
|
||||
"title": "Docker",
|
||||
"content": "Initial setup Use sqlite Use postgreSQL Start gancio Upgrade Initial setup You do not need to clone the full repo as we distribute gancio via npm. A Dockerfile and a docker-compose.yml are the only files needed. Create a directory where everything related to gancio is stored (db, images, config) mkdir /opt/gancio cd /opt/gancio note that you can choose a different directory. Use sqlite Download docker-compose.yml and Dockerfile wget https://gancio.org/docker/Dockerfile wget https://gancio.org/docker/sqlite/docker-compose.yml Create an empty db and config (this is needed) touch config.json db.sqlite mkdir user_locale Build docker image and launch interactive setup in one step docker-compose build docker-compose run --rm gancio gancio setup --docker --db=sqlite Use postgreSQL Download docker-compose.yml and Dockerfile wget https://gancio.org/docker/Dockerfile wget https://gancio.org/docker/postgres/docker-compose.yml Create an empty configuration (this is needed) touch config.json mkdir user_locale Build docker image and launch interactive setup in one step docker-compose build docker-compose run --rm gancio gancio setup --docker --db=postgres Start gancio Run your container docker-compose up -d Look at logs with docker-compose logs Setup nginx as a proxy Point your web browser to http://localhost:13120 or where you specified during setup and enjoy :tada: You can edit config.json file and restart the container on your needs, see Configuration for more details. Upgrade cd /opt/gancio docker-compose up -d --no-deps --build",
|
||||
"url": "https://gancio.org/install/docker",
|
||||
"relUrl": "/install/docker"
|
||||
},
|
||||
"6": {
|
||||
"id": "6",
|
||||
"7": {
|
||||
"id": "7",
|
||||
"title": "Federation",
|
||||
"content": "Federation Each instance has only one AP Actor that publishes each event. We are considering the introduction of other “Actor” but they will not be linked to users, rather to places or tags/categories. There are no personal homes with a timeline of people I follow, everyone has a sort of local timeline of the instance, it’s an anti filter-bubble feature. Events are not published with the type Event but with type Note because we wanted to add the possibility to interact with events from mastodon instances (boost / bookmark and “comments” that we call resources because we don’t want it to become a place of debate, but more a place where to keep a historical memory of events, e.g. an audio recording of a talk). When mastodon will support Event object type we will change for sure.",
|
||||
"url": "https://gancio.org/federation",
|
||||
"relUrl": "/federation"
|
||||
},
|
||||
"7": {
|
||||
"id": "7",
|
||||
"8": {
|
||||
"id": "8",
|
||||
"title": "Home",
|
||||
"content": "Gancio A shared agenda for local communities. Get started now Demo Source Some relevant key features: Focus on content not on people: nowhere on gancio appears the identity of who published the event, not even under a nickname, not even to administrators (except in the db). This is not an ego-friendly platform. Visitors first. We do not want logged user to get more features than random visitor. We do not want users to register, except to publish events and even in this case you can publish an anonymous event. Anonymous events: optionally a visitor can create events without being registered (an administrator has to confirm them) We are not interested in making hits so we export events in many ways, via RSS feeds, via global or individual ics, incorporating lists of events or single event via iframe on other websites. Very easy UI Multidays events support (festival, conferences…) Recurrent events support (each monday, each two monday, each monday and friday, each two saturday, etc.) Filters events for tags or places RSS and ICS export (with filters) embeddable iframe (example) boost / bookmark / comment events from the fediverse! Lot of configurations available (user registration open/close, enable federation, enable recurrent events) License Gancio is distributed by an AGPL-3.0 Licence.",
|
||||
"url": "https://gancio.org/",
|
||||
"relUrl": "/"
|
||||
},
|
||||
"8": {
|
||||
"id": "8",
|
||||
"9": {
|
||||
"id": "9",
|
||||
"title": "Install",
|
||||
"content": "Install (production) Install on Debian Install using docker Post installation Nginx as a proxy If you wanna hack or run the current develop release take a look at Hacking & contribute",
|
||||
"url": "https://gancio.org/install",
|
||||
"relUrl": "/install"
|
||||
},
|
||||
"9": {
|
||||
"id": "9",
|
||||
"10": {
|
||||
"id": "10",
|
||||
"title": "Instances",
|
||||
"content": "Instances gancio.cisti.org (Torino, Italy) lapunta.org (Firenze, Italy)",
|
||||
"url": "https://gancio.org/instances",
|
||||
"relUrl": "/instances"
|
||||
},
|
||||
"10": {
|
||||
"id": "10",
|
||||
"11": {
|
||||
"id": "11",
|
||||
"title": "Support a new language",
|
||||
"content": "Add a new locale watch this commit",
|
||||
"url": "https://gancio.org/dev/locales",
|
||||
"relUrl": "/dev/locales"
|
||||
},
|
||||
"11": {
|
||||
"id": "11",
|
||||
"12": {
|
||||
"id": "12",
|
||||
"title": "Migration",
|
||||
"content": "If you need to modify the db’s structure while hacking, just change server/api/models/ and remember to create a migration, to understand how things works check the sequelize documentation",
|
||||
"url": "https://gancio.org/dev/migration",
|
||||
"relUrl": "/dev/migration"
|
||||
},
|
||||
"12": {
|
||||
"id": "12",
|
||||
"13": {
|
||||
"id": "13",
|
||||
"title": "Nginx",
|
||||
"content": "Nginx proxy configuration This is the default nginx configuration for gancio, please modify at least the server_name and ssl_certificate’s path. Note that this does not include a cache configuration and that gancio does not use a cache control at all, if you can help with this task you’re welcome. server { listen 80; listen [::]:80; server_name gancio.cisti.org; root /var/www/letsencrypt; location /.well-known/acme-challenge/ { allow all; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name gancio.cisti.org; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; # Uncomment these lines once you acquire a certificate: # ssl_certificate /etc/letsencrypt/live/gancio.cisti.org/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/gancio.cisti.org/privkey.pem; keepalive_timeout 70; sendfile on; client_max_body_size 80m; gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; add_header Strict-Transport-Security "max-age=31536000"; location / { try_files $uri @proxy; } location @proxy { proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header Proxy ""; proxy_pass_header Server; proxy_pass http://127.0.0.1:13120; proxy_buffering on; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; tcp_nodelay on; } }",
|
||||
"url": "https://gancio.org/install/nginx",
|
||||
"relUrl": "/install/nginx"
|
||||
},
|
||||
"13": {
|
||||
"id": "13",
|
||||
"14": {
|
||||
"id": "14",
|
||||
"title": "OAuth",
|
||||
"content": "OAuth An open standard for token-based authentication and authorization on the Internet. Gancio supports OAuth 2.0, an authorization framework described in RFC 6749 that allows third-party applications to obtain limited access to an HTTP service on behalf of a resource owner, through the use of a standardized authorization flow that generates a client access token to be used with HTTP requests. To obtain an OAuth token for a Gancio instance, make sure that you allow your users to specify the domain they want to connect to before login. Use that domain to acquire a client id/secret and then proceed with normal OAuth 2. Create client Create a new application to obtain OAuth2 credentials. POST /api/client Request parameters client_name string A name for your application redirect_uri string Where the user should be redirected after authorization scopes string Space separated list of scopes. If none is provided, defaults to write as it’s the only supported scope! website string A URL to the homepage of your app Example curl -X POST -d 'client_name=Wordpress Event Manager' -d 'redirect_uri=https://noblogs.org/' -d 'website=https://myapp.example' http://localhost:13120/api/client Returns Application, with client_id and client_secret { "name" : "Wordpress Event Manager", "scopes" : "write", "website" : "https://myapp.example", "client_secret" : "909029fa12797e6bdfb5baf5e379675dfa4e3ad4", "redirect_uri" : "https://noblogs.org", "client_id" : "0f377e34b2aaf517f7db534f32d26b0dd938fb6d" } List of scopes write Grant access to add/update events. Authorize a user Displays an authorization form to the user. If approved, it will create and return an authorization code, then redirect to the desired redirect_uri. The authorization code can be used while requesting a token to obtain access to user-level methods. GET /authorize Request parameters response_type string Should be set equal to code redirect_uri string Where the user should be redirected after authorization scope string Should be write client_id string Client ID, obtained during app registration.",
|
||||
"url": "https://gancio.org/oauth",
|
||||
"relUrl": "/oauth"
|
||||
},
|
||||
"15": {
|
||||
"id": "15",
|
||||
"title": "Project Structure",
|
||||
"content": "Project structure API / backend Client / frontend Federation / ActivityPub API / backend Source code inside server/api/. index.js is basically a routing table pointing each PATH with specified HTTP VERB to a method of a controller. jwt is used to authenticate api request. Express.js is based on middleware, passing each request to a chain of methods. If you come from a PHP background, note that the main difference with Node.js is that the server process is always running and able to manage multiple requests and tasks together (asyncronically) while each php process is tied to a single request. Sequelize is used as ORM. Take a look in /server/api/models. Client / frontend Nuxt.js is used here! Nuxt is basically Vue plus SSR (Server Side Rendering). Client routing in nuxt is automatic (if you don’t need something special), just put your page inside pages and that’s it! Federation / ActivityPub Code inside server/federation.",
|
||||
"url": "https://gancio.org/dev/structure",
|
||||
|
|
463
docs/_site/changelog.html
Normal file
463
docs/_site/changelog.html
Normal file
|
@ -0,0 +1,463 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
||||
|
||||
<title>Changelog - Gancio</title>
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://gancio.org/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="https://gancio.org/assets/css/just-the-docs.css">
|
||||
<link rel="stylesheet" href="https://gancio.org/assets/css/style.css">
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://gancio.org/assets/js/vendor/lunr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://gancio.org/assets/js/just-the-docs.js"></script>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<script src="https://gancio.org/assets/js/jquery-3.3.1.min.js"></script>
|
||||
<link rel="stylesheet" href="https://gancio.org/assets/css/jquery.fancybox.min.css"/>
|
||||
<script src="https://gancio.org/assets/js/jquery.fancybox.min.js"></script>
|
||||
|
||||
<!-- Begin Jekyll SEO tag v2.6.1 -->
|
||||
<title>Changelog | Gancio</title>
|
||||
<meta name="generator" content="Jekyll v3.8.6" />
|
||||
<meta property="og:title" content="Changelog" />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta name="description" content="A shared agenda for local communities with AP support" />
|
||||
<meta property="og:description" content="A shared agenda for local communities with AP support" />
|
||||
<link rel="canonical" href="https://gancio.org/changelog" />
|
||||
<meta property="og:url" content="https://gancio.org/changelog" />
|
||||
<meta property="og:site_name" content="Gancio" />
|
||||
<script type="application/ld+json">
|
||||
{"@type":"WebPage","url":"https://gancio.org/changelog","headline":"Changelog","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="page-wrap">
|
||||
<div class="side-bar">
|
||||
<a href="https://gancio.org/" class="site-title fs-6 lh-tight">Gancio</a>
|
||||
<span class="fs-3"><button class="js-main-nav-trigger navigation-list-toggle btn btn-outline" type="button" data-text-toggle="Hide">Menu</button></span>
|
||||
<div class="navigation main-nav js-main-nav">
|
||||
<nav role="navigation" aria-label="Main navigation">
|
||||
<ul class="navigation-list">
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item active">
|
||||
|
||||
<a href="https://gancio.org/404.html" class="navigation-list-link"></a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/" class="navigation-list-link">Home</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/install" class="navigation-list-link">Install</a>
|
||||
|
||||
|
||||
<ul class="navigation-list-child-list ">
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/install/debian" class="navigation-list-link">Debian</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/install/docker" class="navigation-list-link">Docker</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/install/nginx" class="navigation-list-link">Nginx</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/config" class="navigation-list-link">Configuration</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/dev" class="navigation-list-link">Hacking</a>
|
||||
|
||||
|
||||
<ul class="navigation-list-child-list ">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/dev/locales" class="navigation-list-link">Support a new language</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/dev/migration" class="navigation-list-link">Migration</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/dev/structure" class="navigation-list-link">Project Structure</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/instances" class="navigation-list-link">Instances</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/about" class="navigation-list-link">About</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item active">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link active">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
<footer role="contentinfo" class="site-footer">
|
||||
<p class="text-small text-grey-dk-000 mb-0">This site uses <a href="https://github.com/pmarsceill/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.</p>
|
||||
</footer>
|
||||
</div>
|
||||
<div class="main-content-wrap js-main-content" tabindex="0">
|
||||
<div class="page-header">
|
||||
<div class="main-content">
|
||||
|
||||
<div class="search js-search">
|
||||
<div class="search-input-wrap">
|
||||
<input type="text" class="js-search-input search-input" tabindex="0" placeholder="Search Gancio" aria-label="Search Gancio" autocomplete="off">
|
||||
<svg width="14" height="14" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg" class="search-icon"><title>Search</title><g fill-rule="nonzero"><path d="M17.332 20.735c-5.537 0-10-4.6-10-10.247 0-5.646 4.463-10.247 10-10.247 5.536 0 10 4.601 10 10.247s-4.464 10.247-10 10.247zm0-4c3.3 0 6-2.783 6-6.247 0-3.463-2.7-6.247-6-6.247s-6 2.784-6 6.247c0 3.464 2.7 6.247 6 6.247z"/><path d="M11.672 13.791L.192 25.271 3.02 28.1 14.5 16.62z"/></g></svg>
|
||||
</div>
|
||||
<div class="js-search-results search-results-wrap"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="list-style-none text-small mt-md-1 mb-md-1 pb-4 pb-md-0 js-aux-nav aux-nav">
|
||||
|
||||
<li class="d-inline-block my-0 mr-2"><a href="https://blog.gancio.org">Blog</a></li>
|
||||
|
||||
<li class="d-inline-block my-0 mr-2"><a href="https://framagit.org/les/gancio">Source</a></li>
|
||||
|
||||
<li class="d-inline-block my-0"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="main-content">
|
||||
|
||||
|
||||
|
||||
<div id="main-content" class="page-content" role="main">
|
||||
<p>All notable changes to this project will be documented in this file.</p>
|
||||
|
||||
<p>unreleased</p>
|
||||
<ul>
|
||||
<li>oauth server implementation</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="01714">0.17.14</h3>
|
||||
<ul>
|
||||
<li>[locale] add catalan</li>
|
||||
<li>[fix] fedi outbox</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="01712">0.17.12</h3>
|
||||
<ul>
|
||||
<li>[ui] add admin section on event page in mobile #63</li>
|
||||
<li>[fix] remove username from users</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="01711">0.17.11</h3>
|
||||
<ul>
|
||||
<li>[refactor] s/fed_user/ap_user</li>
|
||||
<li>[fedi] admin moderation</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="01710">0.17.10</h3>
|
||||
<ul>
|
||||
<li>[refactor] s/comment/resource/</li>
|
||||
<li>[refactor] remove <code class="highlighter-rouge">username</code> field</li>
|
||||
<li>[doc] about and federation</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0178">0.17.8</h3>
|
||||
<ul>
|
||||
<li>[fix] use thumb in head og:img only</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0177">0.17.7</h3>
|
||||
<ul>
|
||||
<li>[fix] #58 wrong url for RSS feed</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0175">0.17.5</h3>
|
||||
<ul>
|
||||
<li>[fedi] comments moderation</li>
|
||||
<li>[fedi] user moderation</li>
|
||||
<li>[fedi] instance moderation</li>
|
||||
<li>[hotfix] cli setup</li>
|
||||
<li>[doc] fix debian upgrade</li>
|
||||
<li>[fix] comment ap_id key length</li>
|
||||
<li>[fix] fediverse signature</li>
|
||||
<li>[fedi] better /inbox /followers response</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0170">0.17.0</h3>
|
||||
<ul>
|
||||
<li>[feat] add rss link @homepage</li>
|
||||
<li>[ui] add lot of explanation text</li>
|
||||
<li>[ui] show copied messages</li>
|
||||
<li>[admin] show n of unconfirmed users/events</li>
|
||||
<li>[ui] spinner while event image is loading</li>
|
||||
<li>[fedi] add follow me dialog in event</li>
|
||||
<li>[fix] do not add reminders in full ics export</li>
|
||||
<li>[fix] remove spaces from hashtags sent via AP</li>
|
||||
<li>[fix] #56 unconfirmed event sent via ap</li>
|
||||
<li>[fix] localPosts/comments in fediverse stats</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0160">0.16.0</h3>
|
||||
<ul>
|
||||
<li>[feat] embed event as widget in external website</li>
|
||||
<li>[fedi] instances moderation in admin</li>
|
||||
<li>[fix] toggle event visibility by owner</li>
|
||||
<li>[fedi] manage unboost</li>
|
||||
<li>[refactoring] auth as middleware</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0157">0.15.7</h3>
|
||||
<ul>
|
||||
<li>[fix] minor</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0156">0.15.6</h3>
|
||||
<ul>
|
||||
<li>[fix] tags in event</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0155">0.15.5</h3>
|
||||
<ul>
|
||||
<li>[model] migrations setup</li>
|
||||
<li>[feat] embeddable event widget/iframe</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0152">0.15.2</h3>
|
||||
<ul>
|
||||
<li>[fix] delete event</li>
|
||||
<li>[fix] wrong html hierarchy</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="0150">0.15.0</h3>
|
||||
<ul>
|
||||
<li>[fix] backtop icon on mobile</li>
|
||||
<li>[fix] webfinger nodeinfo return real node info</li>
|
||||
<li>[fix] register email confirmation</li>
|
||||
<li>[feat] add federation settings (enable comments/boost/like)</li>
|
||||
<li>[feat] new event page layout</li>
|
||||
<li>[feat] could download .ics of event</li>
|
||||
<li>[feat] add cors to feed requests</li>
|
||||
<li>[refactoring] settings middleware, cleaning codebase</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="01418">0.14.18</h3>
|
||||
<ul>
|
||||
<li>[improve] better quality for images</li>
|
||||
<li>[fix] password recovery email</li>
|
||||
<li>[feat] new action field for notification</li>
|
||||
<li>[feat] add DEBUG env variable in docker-compose.yml</li>
|
||||
<li>[style] fixed width in confirmation events table</li>
|
||||
<li>[fix] #38 timezone issue in rss export and using tor…</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="01417">0.14.17</h3>
|
||||
<ul>
|
||||
<li>[fix] image previews from external website</li>
|
||||
<li>[fix] docker-compose postgresql docs</li>
|
||||
<li>[improve] export white logo to fediverse</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
@ -378,6 +406,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.6">Jekyll</generator><link href="https://gancio.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://gancio.org/" rel="alternate" type="text/html" /><updated>2019-12-06T00:50:52+01:00</updated><id>https://gancio.org/feed.xml</id><title type="html">Gancio</title><subtitle>A shared agenda for local communities with AP support</subtitle></feed>
|
||||
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.6">Jekyll</generator><link href="https://gancio.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://gancio.org/" rel="alternate" type="text/html" /><updated>2020-01-21T01:24:44+01:00</updated><id>https://gancio.org/feed.xml</id><title type="html">Gancio</title><subtitle>A shared agenda for local communities with AP support</subtitle></feed>
|
|
@ -151,6 +151,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -224,6 +228,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -260,6 +268,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
|
@ -149,6 +149,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
@ -222,6 +226,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
@ -258,6 +266,26 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
|
438
docs/_site/oauth.html
Normal file
438
docs/_site/oauth.html
Normal file
|
@ -0,0 +1,438 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
||||
|
||||
<title>OAuth - Gancio</title>
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="https://gancio.org/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="https://gancio.org/assets/css/just-the-docs.css">
|
||||
<link rel="stylesheet" href="https://gancio.org/assets/css/style.css">
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://gancio.org/assets/js/vendor/lunr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" src="https://gancio.org/assets/js/just-the-docs.js"></script>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<script src="https://gancio.org/assets/js/jquery-3.3.1.min.js"></script>
|
||||
<link rel="stylesheet" href="https://gancio.org/assets/css/jquery.fancybox.min.css"/>
|
||||
<script src="https://gancio.org/assets/js/jquery.fancybox.min.js"></script>
|
||||
|
||||
<!-- Begin Jekyll SEO tag v2.6.1 -->
|
||||
<title>OAuth | Gancio</title>
|
||||
<meta name="generator" content="Jekyll v3.8.6" />
|
||||
<meta property="og:title" content="OAuth" />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta name="description" content="A shared agenda for local communities with AP support" />
|
||||
<meta property="og:description" content="A shared agenda for local communities with AP support" />
|
||||
<link rel="canonical" href="https://gancio.org/oauth" />
|
||||
<meta property="og:url" content="https://gancio.org/oauth" />
|
||||
<meta property="og:site_name" content="Gancio" />
|
||||
<script type="application/ld+json">
|
||||
{"@type":"WebPage","url":"https://gancio.org/oauth","headline":"OAuth","description":"A shared agenda for local communities with AP support","@context":"https://schema.org"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="page-wrap">
|
||||
<div class="side-bar">
|
||||
<a href="https://gancio.org/" class="site-title fs-6 lh-tight">Gancio</a>
|
||||
<span class="fs-3"><button class="js-main-nav-trigger navigation-list-toggle btn btn-outline" type="button" data-text-toggle="Hide">Menu</button></span>
|
||||
<div class="navigation main-nav js-main-nav">
|
||||
<nav role="navigation" aria-label="Main navigation">
|
||||
<ul class="navigation-list">
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item active">
|
||||
|
||||
<a href="https://gancio.org/404.html" class="navigation-list-link"></a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/" class="navigation-list-link">Home</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/install" class="navigation-list-link">Install</a>
|
||||
|
||||
|
||||
<ul class="navigation-list-child-list ">
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/install/debian" class="navigation-list-link">Debian</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/install/docker" class="navigation-list-link">Docker</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/install/nginx" class="navigation-list-link">Nginx</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/config" class="navigation-list-link">Configuration</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/dev" class="navigation-list-link">Hacking</a>
|
||||
|
||||
|
||||
<ul class="navigation-list-child-list ">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/dev/locales" class="navigation-list-link">Support a new language</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/dev/migration" class="navigation-list-link">Migration</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item ">
|
||||
|
||||
<a href="https://gancio.org/dev/structure" class="navigation-list-link">Project Structure</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/instances" class="navigation-list-link">Instances</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/about" class="navigation-list-link">About</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/federation" class="navigation-list-link">Federation</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item active">
|
||||
|
||||
<a href="https://gancio.org/oauth" class="navigation-list-link active">OAuth</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="navigation-list-item">
|
||||
|
||||
<a href="https://gancio.org/changelog" class="navigation-list-link">Changelog</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
<footer role="contentinfo" class="site-footer">
|
||||
<p class="text-small text-grey-dk-000 mb-0">This site uses <a href="https://github.com/pmarsceill/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.</p>
|
||||
</footer>
|
||||
</div>
|
||||
<div class="main-content-wrap js-main-content" tabindex="0">
|
||||
<div class="page-header">
|
||||
<div class="main-content">
|
||||
|
||||
<div class="search js-search">
|
||||
<div class="search-input-wrap">
|
||||
<input type="text" class="js-search-input search-input" tabindex="0" placeholder="Search Gancio" aria-label="Search Gancio" autocomplete="off">
|
||||
<svg width="14" height="14" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg" class="search-icon"><title>Search</title><g fill-rule="nonzero"><path d="M17.332 20.735c-5.537 0-10-4.6-10-10.247 0-5.646 4.463-10.247 10-10.247 5.536 0 10 4.601 10 10.247s-4.464 10.247-10 10.247zm0-4c3.3 0 6-2.783 6-6.247 0-3.463-2.7-6.247-6-6.247s-6 2.784-6 6.247c0 3.464 2.7 6.247 6 6.247z"/><path d="M11.672 13.791L.192 25.271 3.02 28.1 14.5 16.62z"/></g></svg>
|
||||
</div>
|
||||
<div class="js-search-results search-results-wrap"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<ul class="list-style-none text-small mt-md-1 mb-md-1 pb-4 pb-md-0 js-aux-nav aux-nav">
|
||||
|
||||
<li class="d-inline-block my-0 mr-2"><a href="https://blog.gancio.org">Blog</a></li>
|
||||
|
||||
<li class="d-inline-block my-0 mr-2"><a href="https://framagit.org/les/gancio">Source</a></li>
|
||||
|
||||
<li class="d-inline-block my-0"><a href="https://socialhub.activitypub.rocks/c/software/gancio">Forum</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="main-content">
|
||||
|
||||
|
||||
|
||||
<div id="main-content" class="page-content" role="main">
|
||||
<h2 class="no_toc" id="oauth">OAuth</h2>
|
||||
<p>An open standard for token-based authentication and authorization on the Internet.</p>
|
||||
|
||||
<p>Gancio supports OAuth 2.0, an authorization framework described in <a href="https://tools.ietf.org/html/rfc6749">RFC 6749</a> that allows third-party applications to obtain limited access to an HTTP service on behalf of a resource owner, through the use of a standardized authorization flow that generates a client access token to be used with HTTP requests.</p>
|
||||
|
||||
<p>To obtain an OAuth token for a Gancio instance, make sure that you allow your users to specify the domain they want to connect to before login. Use that domain to <a href="#create-client">acquire a client id/secret</a> and then proceed with normal OAuth 2.</p>
|
||||
|
||||
<h2 id="create-client">Create client</h2>
|
||||
<p>Create a new application to obtain OAuth2 credentials.</p>
|
||||
|
||||
<p class="label label-yellow">POST</p>
|
||||
|
||||
<p><code class="highlighter-rouge">/api/client</code></p>
|
||||
|
||||
<h4 id="request-parameters">Request parameters</h4>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>client_name</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>A name for your application</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>redirect_uri</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>Where the user should be redirected after authorization</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>scopes</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>Space separated list of scopes. If none is provided, defaults to <code class="highlighter-rouge">write</code> as it’s the only supported scope!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>website</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>A URL to the homepage of your app</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h4 id="example">Example</h4>
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-X</span> POST <span class="se">\</span>
|
||||
<span class="nt">-d</span> <span class="s1">'client_name=Wordpress Event Manager'</span> <span class="se">\</span>
|
||||
<span class="nt">-d</span> <span class="s1">'redirect_uri=https://noblogs.org/'</span> <span class="se">\</span>
|
||||
<span class="nt">-d</span> <span class="s1">'website=https://myapp.example'</span> <span class="se">\</span>
|
||||
http://localhost:13120/api/client
|
||||
</code></pre></div></div>
|
||||
|
||||
<h4 id="returns">Returns</h4>
|
||||
<p>Application, with <code class="highlighter-rouge">client_id</code> and <code class="highlighter-rouge">client_secret</code></p>
|
||||
|
||||
<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
|
||||
</span><span class="s2">"name"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"Wordpress Event Manager"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="s2">"scopes"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"write"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="s2">"website"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"https://myapp.example"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="s2">"client_secret"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"909029fa12797e6bdfb5baf5e379675dfa4e3ad4"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="s2">"redirect_uri"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"https://noblogs.org"</span><span class="p">,</span><span class="w">
|
||||
</span><span class="s2">"client_id"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"0f377e34b2aaf517f7db534f32d26b0dd938fb6d"</span><span class="w">
|
||||
</span><span class="p">}</span><span class="w">
|
||||
</span></code></pre></div></div>
|
||||
|
||||
<h4 id="list-of-scopes">List of scopes</h4>
|
||||
<ul>
|
||||
<li><code class="highlighter-rouge">write</code><br />
|
||||
Grant access to add/update events.</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="authorize-a-user">Authorize a user</h2>
|
||||
<p>Displays an authorization form to the user. If approved, it will create and return an authorization code, then redirect to the desired <code class="highlighter-rouge">redirect_uri</code>.
|
||||
The authorization code can be used while requesting a token to obtain access to user-level methods.</p>
|
||||
|
||||
<p class="label label-green">GET</p>
|
||||
<p><code class="highlighter-rouge">/authorize</code></p>
|
||||
|
||||
<h4 id="request-parameters-1">Request parameters</h4>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>response_type</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>Should be set equal to <code class="highlighter-rouge">code</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>redirect_uri</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>Where the user should be redirected after authorization</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>scope</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>Should be <code class="highlighter-rouge">write</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>client_id</td>
|
||||
<td><code class="highlighter-rouge">string</code></td>
|
||||
<td>Client ID, obtained during app registration.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
4
docs/assets/css/fa.min.css
vendored
Normal file
4
docs/assets/css/fa.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
90
docs/assets/css/premonition.css
Normal file
90
docs/assets/css/premonition.css
Normal file
|
@ -0,0 +1,90 @@
|
|||
.premonition {
|
||||
display: grid;
|
||||
grid-template-columns: 43px auto;
|
||||
padding-top: 13px;
|
||||
padding-bottom: 6px;
|
||||
margin: 30px 0 30px 0;
|
||||
background-color: #e3edf2;
|
||||
border-left: 4px solid #5bc0de;
|
||||
color: #5bc0de;
|
||||
}
|
||||
|
||||
.premonition code {
|
||||
background-color: #fff;
|
||||
color: #5bc0de;
|
||||
}
|
||||
|
||||
.premonition .header {
|
||||
font-weight: 700;
|
||||
font-size: 15px;
|
||||
color: #5bc0de;
|
||||
}
|
||||
|
||||
.premonition .fa {
|
||||
font-size: 18px;
|
||||
opacity: .3;
|
||||
padding-top: 2px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.premonition .content {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
.premonition.info {
|
||||
background-color: #f3f8f3;
|
||||
color: #50af51;
|
||||
border-color: #50af51;
|
||||
}
|
||||
|
||||
.premonition.info a {
|
||||
color: #50af51;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.premonition.info code {
|
||||
color: #50af51;
|
||||
}
|
||||
|
||||
.premonition.info .header {
|
||||
color: #50af51;
|
||||
}
|
||||
|
||||
.premonition.warning {
|
||||
background-color: #fcf8f2;
|
||||
color: #f0ad4e;
|
||||
border-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.premonition.warning a {
|
||||
color: #f0ad4e;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.premonition.warning code {
|
||||
color: #f0ad4e;
|
||||
}
|
||||
|
||||
.premonition.warning .header {
|
||||
color: #f0ad4e;
|
||||
}
|
||||
|
||||
.premonition.error {
|
||||
background-color: #fdf7f7;
|
||||
color: #d9534f;
|
||||
border-color: #d9534f;
|
||||
}
|
||||
|
||||
.premonition.error a {
|
||||
color: #d9534f;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.premonition.error code {
|
||||
color: #d9534f;
|
||||
}
|
||||
|
||||
.premonition.error .header {
|
||||
color: #d9534f;
|
||||
}
|
BIN
docs/assets/fonts/FontAwesome.otf
Normal file
BIN
docs/assets/fonts/FontAwesome.otf
Normal file
Binary file not shown.
BIN
docs/assets/fonts/fontawesome-webfont.eot
Normal file
BIN
docs/assets/fonts/fontawesome-webfont.eot
Normal file
Binary file not shown.
2671
docs/assets/fonts/fontawesome-webfont.svg
Normal file
2671
docs/assets/fonts/fontawesome-webfont.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 434 KiB |
BIN
docs/assets/fonts/fontawesome-webfont.ttf
Normal file
BIN
docs/assets/fonts/fontawesome-webfont.ttf
Normal file
Binary file not shown.
BIN
docs/assets/fonts/fontawesome-webfont.woff
Normal file
BIN
docs/assets/fonts/fontawesome-webfont.woff
Normal file
Binary file not shown.
BIN
docs/assets/fonts/fontawesome-webfont.woff2
Normal file
BIN
docs/assets/fonts/fontawesome-webfont.woff2
Normal file
Binary file not shown.
73
docs/oauth.md
Normal file
73
docs/oauth.md
Normal file
|
@ -0,0 +1,73 @@
|
|||
---
|
||||
layout: default
|
||||
title: OAuth
|
||||
permalink: /oauth
|
||||
nav_order: 9
|
||||
---
|
||||
|
||||
## OAuth
|
||||
{: .no_toc }
|
||||
An open standard for token-based authentication and authorization on the Internet.
|
||||
|
||||
Gancio supports OAuth 2.0, an authorization framework described in [RFC 6749](https://tools.ietf.org/html/rfc6749) that allows third-party applications to obtain limited access to an HTTP service on behalf of a resource owner, through the use of a standardized authorization flow that generates a client access token to be used with HTTP requests.
|
||||
|
||||
To obtain an OAuth token for a Gancio instance, make sure that you allow your users to specify the domain they want to connect to before login. Use that domain to [acquire a client id/secret](#create-client) and then proceed with normal OAuth 2.
|
||||
|
||||
## Create client
|
||||
Create a new application to obtain OAuth2 credentials.
|
||||
|
||||
POST
|
||||
{: .label .label-yellow }
|
||||
|
||||
`/api/client`
|
||||
|
||||
|
||||
#### Request parameters
|
||||
|
||||
| client_name | `string` | A name for your application |
|
||||
| redirect_uri | `string` | Where the user should be redirected after authorization |
|
||||
| scopes | `string` | Space separated list of scopes. If none is provided, defaults to `write` as it's the only supported scope!|
|
||||
| website | `string` | A URL to the homepage of your app |
|
||||
|
||||
#### Example
|
||||
```bash
|
||||
curl -X POST \
|
||||
-d 'client_name=Wordpress Event Manager' \
|
||||
-d 'redirect_uri=https://noblogs.org/' \
|
||||
-d 'website=https://myapp.example' \
|
||||
http://localhost:13120/api/client
|
||||
```
|
||||
|
||||
#### Returns
|
||||
Application, with `client_id` and `client_secret`
|
||||
|
||||
```json
|
||||
{
|
||||
"name" : "Wordpress Event Manager",
|
||||
"scopes" : "write",
|
||||
"website" : "https://myapp.example",
|
||||
"client_secret" : "909029fa12797e6bdfb5baf5e379675dfa4e3ad4",
|
||||
"redirect_uri" : "https://noblogs.org",
|
||||
"client_id" : "0f377e34b2aaf517f7db534f32d26b0dd938fb6d"
|
||||
}
|
||||
```
|
||||
|
||||
#### List of scopes
|
||||
- `write`
|
||||
Grant access to add/update events.
|
||||
|
||||
## Authorize a user
|
||||
Displays an authorization form to the user. If approved, it will create and return an authorization code, then redirect to the desired `redirect_uri`.
|
||||
The authorization code can be used while requesting a token to obtain access to user-level methods.
|
||||
|
||||
GET
|
||||
{: .label .label-green}
|
||||
`/authorize`
|
||||
|
||||
#### Request parameters
|
||||
|
||||
| response_type | `string` | Should be set equal to `code` |
|
||||
| redirect_uri | `string` | Where the user should be redirected after authorization |
|
||||
| scope | `string` | Should be `write`|
|
||||
| client_id | `string` | Client ID, obtained during app registration. |
|
||||
|
Loading…
Reference in a new issue