{"id":13427664,"url":"https://github.com/lynndylanhurley/devise_token_auth","last_synced_at":"2025-05-12T05:30:11.019Z","repository":{"id":18202512,"uuid":"21333814","full_name":"lynndylanhurley/devise_token_auth","owner":"lynndylanhurley","description":"Token based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth.","archived":false,"fork":false,"pushed_at":"2025-04-18T20:31:47.000Z","size":9055,"stargazers_count":3562,"open_issues_count":201,"forks_count":1135,"subscribers_count":52,"default_branch":"master","last_synced_at":"2025-05-09T03:49:31.502Z","etag":null,"topics":["api","authentication","devise","oauth","omniauth","rails"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lynndylanhurley.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-06-29T22:43:58.000Z","updated_at":"2025-05-08T13:02:37.000Z","dependencies_parsed_at":"2024-01-15T09:03:09.564Z","dependency_job_id":"ab3c4e96-d604-4f6a-95fa-e94287a44a87","html_url":"https://github.com/lynndylanhurley/devise_token_auth","commit_stats":{"total_commits":868,"total_committers":251,"mean_commits":3.458167330677291,"dds":0.6152073732718895,"last_synced_commit":"812711e4776f2eab2de8a057bd5befc023fb666b"},"previous_names":[],"tags_count":102,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lynndylanhurley%2Fdevise_token_auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lynndylanhurley%2Fdevise_token_auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lynndylanhurley%2Fdevise_token_auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lynndylanhurley%2Fdevise_token_auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lynndylanhurley","download_url":"https://codeload.github.com/lynndylanhurley/devise_token_auth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253510168,"owners_count":21919670,"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":["api","authentication","devise","oauth","omniauth","rails"],"created_at":"2024-07-31T01:00:36.362Z","updated_at":"2025-05-11T03:21:18.966Z","avatar_url":"https://github.com/lynndylanhurley.png","language":"Ruby","funding_links":["https://opencollective.com/devise_token_auth"],"categories":["User","Ruby","用户","Authentication"],"sub_categories":["Authentication","认证"],"readme":"# Devise Token Auth\n\n[![Gem Version](https://badge.fury.io/rb/devise_token_auth.svg)](http://badge.fury.io/rb/devise_token_auth)\n[![Build Status](https://github.com/lynndylanhurley/devise_token_auth/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/lynndylanhurley/devise_token_auth/actions/workflows/test.yml)\n[![Code Climate](https://codeclimate.com/github/lynndylanhurley/devise_token_auth/badges/gpa.svg)](https://codeclimate.com/github/lynndylanhurley/devise_token_auth)\n[![Test Coverage](https://codeclimate.com/github/lynndylanhurley/devise_token_auth/badges/coverage.svg)](https://codeclimate.com/github/lynndylanhurley/devise_token_auth/coverage)\n[![Downloads](https://img.shields.io/gem/dt/devise_token_auth.svg)](https://rubygems.org/gems/devise_token_auth)\n[![Backers on Open Collective](https://opencollective.com/devise_token_auth/backers/badge.svg)](#backers)\n[![Sponsors on Open Collective](https://opencollective.com/devise_token_auth/sponsors/badge.svg)](#sponsors)\n[![Join the chat at https://gitter.im/lynndylanhurley/devise_token_auth](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/lynndylanhurley/devise_token_auth?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nSimple, multi-client and secure token-based authentication for Rails.\n\nIf you're building SPA or a mobile app, and you want authentication, you need tokens, not cookies.\nThis gem refreshes the tokens on each request, and expires them in a short time, so the app is secure.\nAlso, it maintains a session for each client/device, so you can have as many sessions as you want.\n\n## Main features\n\n* Seamless integration with:\n  * [ng-token-auth](https://github.com/lynndylanhurley/ng-token-auth) for [AngularJS](https://github.com/angular/angular.js)\n  * [Angular-Token](https://github.com/neroniaky/angular-token) for [Angular](https://github.com/angular/angular)\n  * [redux-token-auth](https://github.com/kylecorbelli/redux-token-auth) for [React with Redux](https://github.com/reactjs/react-redux)\n  * [jToker](https://github.com/lynndylanhurley/j-toker) for [jQuery](https://jquery.com/)\n  * [vanilla-token-auth](https://github.com/theblang/vanilla-token-auth) for an unopinionated client\n* Oauth2 authentication using [OmniAuth](https://github.com/intridea/omniauth).\n* Email authentication using [Devise](https://github.com/plataformatec/devise), including:\n  * User registration, update and deletion\n  * Login and logout\n  * Password reset, account confirmation\n* Support for [multiple user models](./docs/usage/multiple_models.md).\n* It is [secure](docs/security.md).\n\nThis project leverages the following gems:\n\n* [Devise](https://github.com/plataformatec/devise)\n* [OmniAuth](https://github.com/intridea/omniauth)\n\n## Installation\n\nAdd the following to your `Gemfile`:\n\n~~~ruby\ngem 'devise_token_auth'\n~~~\n\nThen install the gem using bundle:\n\n~~~bash\nbundle install\n~~~\n\n## [Docs](https://devise-token-auth.gitbook.io/devise-token-auth)\n\n## Need help?\n\nPlease use [StackOverflow](https://stackoverflow.com/questions/tagged/devise-token-auth) for help requests and how-to questions.\n\nPlease open GitHub issues for bugs and enhancements only, not general help requests. Please search previous issues (and Google and StackOverflow) before creating a new issue.\n\nPlease read the [issue template](https://github.com/lynndylanhurley/devise_token_auth/blob/master/.github/ISSUE_TEMPLATE.md) before posting issues.\n\n## [FAQ](docs/faq.md)\n\n## Contributors wanted!\n\nSee our [Contribution Guidelines](https://github.com/lynndylanhurley/devise_token_auth/blob/master/.github/CONTRIBUTING.md). Feel free to submit pull requests, review pull requests, or review open issues. If you'd like to get in contact, [Zach Feldman](https://github.com/zachfeldman) has been wrangling this effort, you can reach him with his name @gmail. Further discussion of this in [this issue](https://github.com/lynndylanhurley/devise_token_auth/issues/969).\n\nWe have some bounties for some issues, [check them out](https://github.com/lynndylanhurley/devise_token_auth/issues?q=is%3Aopen+is%3Aissue+label%3Abounty)!\n\n## Live Demos\n\n[Here is a demo](https://stackblitz.com/github/neroniaky/angular-token) of this app running with the [Angular-Token](https://github.com/neroniaky/angular-token) service and [Angular](https://github.com/angular/angular).\n\nThe fully configured api used in these demos can be found [here](https://github.com/lynndylanhurley/devise_token_auth_demo).\n\n\n## Contributors\n\n\u003ca href=\"graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/devise_token_auth/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/devise_token_auth#backer)]\n\n[![](https://opencollective.com/devise_token_auth/backers.svg?width=890)](https://opencollective.com/devise_token_auth#backers)\n\n\n## Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/devise_token_auth#sponsor)]\n\n[![](https://opencollective.com/devise_token_auth/sponsor/0/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/0/website) [![](https://opencollective.com/devise_token_auth/sponsor/1/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/1/website) [![](https://opencollective.com/devise_token_auth/sponsor/2/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/2/website) [![](https://opencollective.com/devise_token_auth/sponsor/3/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/3/website) [![](https://opencollective.com/devise_token_auth/sponsor/4/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/4/website) [![](https://opencollective.com/devise_token_auth/sponsor/5/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/5/website) [![](https://opencollective.com/devise_token_auth/sponsor/6/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/6/website) [![](https://opencollective.com/devise_token_auth/sponsor/7/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/7/website) [![](https://opencollective.com/devise_token_auth/sponsor/8/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/8/website) [![](https://opencollective.com/devise_token_auth/sponsor/9/avatar.svg)](https://opencollective.com/devise_token_auth/sponsor/9/website)\n\n## License\nThis project uses the WTFPL\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flynndylanhurley%2Fdevise_token_auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flynndylanhurley%2Fdevise_token_auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flynndylanhurley%2Fdevise_token_auth/lists"}