You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
gitea/vendor/github.com/markbates/goth/providers/nextcloud
techknowlogick bea497ff96
nextcloud oauth (#10562)
5 years ago
..
README.md nextcloud oauth (#10562) 5 years ago
nextcloud.go nextcloud oauth (#10562) 5 years ago
nextcloud_setup.png nextcloud oauth (#10562) 5 years ago
session.go nextcloud oauth (#10562) 5 years ago

README.md

Nextcloud OAuth2

For this backend, you need to have an OAuth2 enabled Nextcloud Instance, e.g. on your own private server.

Setting up Nextcloud Test Environment

To test, you only need a working Docker image of Nextcloud running on a public URL, e.g. through traefik

version: '2'

networks:
  traefik-web:
    external: true

services:
  app:
    image: nextcloud
    restart: always
    networks:
      - traefik-web
    labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:${NEXTCLOUD_DNS}
      - traefik.docker.network=traefik-web
    environment:
      SQLITE_DATABASE: "database.sqlite3"
      NEXTCLOUD_ADMIN_USER: admin
      NEXTCLOUD_ADMIN_PASSWORD: admin
      NEXTCLOUD_TRUSTED_DOMAINS: ${NEXTCLOUD_DNS}

and start it up via

NEXTCLOUD_DNS=goth.my.server.name docker-compose up -d

afterwards, you will have a running Nextcloud instance with credentials

admin / admin

Then add a new OAuth 2.0 Client by going to

Settings -> Security -> OAuth 2.0 client

Nextcloud Setup

and add a new client with the name goth and redirection uri http://localhost:3000/auth/nextcloud/callback. The imporant part here the two cryptic entries Client Identifier and Secret, which needs to be used in your application.

Running Login Example

If you want to run the default example in <goth>/examples, you have to retrieve the keys described in the previous section and run the example as follows:

NEXTCLOUD_URL=https://goth.my.server.name \
NEXTCLOUD_KEY=<your-key> \
NEXTCLOUD_SECRET=<your-secret> \
SESSION_SECRET=1 \
./examples

Afterwards, you should be able to login via Nextcloud in the examples app.

Running the Provider Test

The test has the same arguments as the login example test, but starts the test itself

NEXTCLOUD_URL=https://goth.my.server.name \
NEXTCLOUD_KEY=<your-key> \
NEXTCLOUD_SECRET=<your-secret> \
SESSION_SECRET=1 \
go test -v