{"id":13550701,"url":"https://github.com/caprazzo/couchdb-openid","last_synced_at":"2025-04-03T00:34:41.054Z","repository":{"id":66934418,"uuid":"466723","full_name":"caprazzo/couchdb-openid","owner":"caprazzo","description":"openid authentication support for couchdb","archived":false,"fork":true,"pushed_at":"2013-09-23T12:25:31.000Z","size":148,"stargazers_count":17,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-03T20:36:01.631Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"etnt/eopenid","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caprazzo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-01-10T22:40:52.000Z","updated_at":"2016-01-08T01:22:30.000Z","dependencies_parsed_at":"2023-02-20T14:45:48.109Z","dependency_job_id":null,"html_url":"https://github.com/caprazzo/couchdb-openid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caprazzo%2Fcouchdb-openid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caprazzo%2Fcouchdb-openid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caprazzo%2Fcouchdb-openid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caprazzo%2Fcouchdb-openid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caprazzo","download_url":"https://codeload.github.com/caprazzo/couchdb-openid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246916734,"owners_count":20854511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:01:36.377Z","updated_at":"2025-04-03T00:34:36.043Z","avatar_url":"https://github.com/caprazzo.png","language":"Erlang","funding_links":[],"categories":["Erlang","others"],"sub_categories":[],"readme":"This is a draft implementation of OpenID version 1.1 for couchdb,\nbased on http://github.com/etnt/eopenid\n\nIt seems fairly stable but has only been tested against myopenid.com,\nso it is definitely not production ready.\n\nI plan to add support for openid 2.0 and to make couchdb work as openid endpoint.\n\n**The handler code would love to be reviewed by someone with some erlang and couchdb experience**\n\nDemo:\n-----\nTry the [login page at fortytwo](http://couch.caprazzi.net/fortytwo/_design/fortytwo/_show/auth).\n\nQuick install:\n--------------\n   * cd couchdb_install_path/lib/couchdb/erlang/lib/\n   * git clone git://github.com/mcaprari/couchdb-openid.git\n   * cd couchdb-openid\n   * make\n   * edit local.ini [httpd]/authentication_handlers (or do it form futon) and\n\tadd {couch_httpd_openid_auth, openid_authentication_handler} **BEFORE the default handlers**\n   * restart couchdb\n  \nQuick test:\n----------\nhttp://localhost:5984/_session?openid=auth-request\u0026openid-identifier=\u003cyour openid\u003e\n\n- optionally add the parameter app-return-address=[an_address_of_your_choice] to be redirected there\nwhen authentication is complete  \n\nWhat to expect:\n---------------\nOnly openid 1.1 is supported and it has only been tested with myopenid.com as openid provider.\n\nWhen a client hits the initiation url (above), it is redirected to the openid provider\nand prompted to authorise the association. \n\nThen it's redirected back to the couch and\n\n   * if the client **is not logged in** in and supplies a **new openid**,\na new user is created with username=openid and the client is logged in\n\n   * if the client **is not logged in** in and supplies a **mapped openid**,\nthe client is logged in as the mapped user\n\n   * if the client **is logged in** and supplies a **new openid**,\n\tthe supplied openid is added to current user, and the client keeps the current login\n   * if the client **is logged in** and supplies a **mapped openid**\n      * if openid is mapped to the **same user**, the client keeps the current login\n      * if openid is mapped to a **different user**, the operation fails 400\n\n   * if user **is logged in AS ADMIN** and supplies a **new openid** the operation fails 500\n\t\n\nTODO:\n----\n   * try erl_openid for openid 2.0 support\n   * decide if it is wise to map openids to admins (if at all possible)\n   * cleanup ets table after auth confirm (or maybe find an alternative to ets tables)\n   * reduce dependence from eopenid (dict access routines at least)\n   \n\n[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/mcaprari/couchdb-openid/trend.png)](https://bitdeli.com/free \"Bitdeli Badge\")\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaprazzo%2Fcouchdb-openid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaprazzo%2Fcouchdb-openid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaprazzo%2Fcouchdb-openid/lists"}