[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7834":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":17,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},7834,"devise_token_auth","lynndylanhurley\u002Fdevise_token_auth","lynndylanhurley","Token based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth.","",null,"Ruby",3569,1137,50,185,0,1,3,61.97,"Do What The F*ck You Want To Public License",false,"master",true,[25,26,27,28,29,30],"api","authentication","devise","oauth","omniauth","rails","2026-06-12 04:00:36","# Devise Token Auth\n\n[![Gem Version](https:\u002F\u002Fbadge.fury.io\u002Frb\u002Fdevise_token_auth.svg)](http:\u002F\u002Fbadge.fury.io\u002Frb\u002Fdevise_token_auth)\n[![Build Status](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fdevise_token_auth\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fdevise_token_auth\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![Code Climate](https:\u002F\u002Fcodeclimate.com\u002Fgithub\u002Flynndylanhurley\u002Fdevise_token_auth\u002Fbadges\u002Fgpa.svg)](https:\u002F\u002Fcodeclimate.com\u002Fgithub\u002Flynndylanhurley\u002Fdevise_token_auth)\n[![Test Coverage](https:\u002F\u002Fcodeclimate.com\u002Fgithub\u002Flynndylanhurley\u002Fdevise_token_auth\u002Fbadges\u002Fcoverage.svg)](https:\u002F\u002Fcodeclimate.com\u002Fgithub\u002Flynndylanhurley\u002Fdevise_token_auth\u002Fcoverage)\n[![Downloads](https:\u002F\u002Fimg.shields.io\u002Fgem\u002Fdt\u002Fdevise_token_auth.svg)](https:\u002F\u002Frubygems.org\u002Fgems\u002Fdevise_token_auth)\n[![Backers on Open Collective](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fbackers\u002Fbadge.svg)](#backers)\n[![Sponsors on Open Collective](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsors\u002Fbadge.svg)](#sponsors)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Flynndylanhurley\u002Fdevise_token_auth](https:\u002F\u002Fbadges.gitter.im\u002FJoin%20Chat.svg)](https:\u002F\u002Fgitter.im\u002Flynndylanhurley\u002Fdevise_token_auth?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_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\u002Fdevice, so you can have as many sessions as you want.\n\n## Main features\n\n* Seamless integration with:\n  * [ng-token-auth](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fng-token-auth) for [AngularJS](https:\u002F\u002Fgithub.com\u002Fangular\u002Fangular.js)\n  * [Angular-Token](https:\u002F\u002Fgithub.com\u002Fneroniaky\u002Fangular-token) for [Angular](https:\u002F\u002Fgithub.com\u002Fangular\u002Fangular)\n  * [redux-token-auth](https:\u002F\u002Fgithub.com\u002Fkylecorbelli\u002Fredux-token-auth) for [React with Redux](https:\u002F\u002Fgithub.com\u002Freactjs\u002Freact-redux)\n  * [jToker](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fj-toker) for [jQuery](https:\u002F\u002Fjquery.com\u002F)\n  * [vanilla-token-auth](https:\u002F\u002Fgithub.com\u002Ftheblang\u002Fvanilla-token-auth) for an unopinionated client\n  * [flutter_token_auth](https:\u002F\u002Fgithub.com\u002Fdiarmuidr3d\u002Fflutter_token_auth) for Flutter\n* Oauth2 authentication using [OmniAuth](https:\u002F\u002Fgithub.com\u002Fintridea\u002Fomniauth).\n* Email authentication using [Devise](https:\u002F\u002Fgithub.com\u002Fplataformatec\u002Fdevise), including:\n  * User registration, update and deletion\n  * Login and logout\n  * Password reset, account confirmation\n* Support for [multiple user models](.\u002Fdocs\u002Fusage\u002Fmultiple_models.md).\n* It is [secure](docs\u002Fsecurity.md).\n\nThis project leverages the following gems:\n\n* [Devise](https:\u002F\u002Fgithub.com\u002Fplataformatec\u002Fdevise)\n* [OmniAuth](https:\u002F\u002Fgithub.com\u002Fintridea\u002Fomniauth)\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:\u002F\u002Fdevise-token-auth.gitbook.io\u002Fdevise-token-auth)\n\n## Need help?\n\nPlease use [StackOverflow](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002Ftagged\u002Fdevise-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:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fdevise_token_auth\u002Fblob\u002Fmaster\u002F.github\u002FISSUE_TEMPLATE.md) before posting issues.\n\n## [FAQ](docs\u002Ffaq.md)\n\n## Contributors wanted!\n\nSee our [Contribution Guidelines](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fdevise_token_auth\u002Fblob\u002Fmaster\u002F.github\u002FCONTRIBUTING.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:\u002F\u002Fgithub.com\u002Fzachfeldman) has been wrangling this effort, you can reach him with his name @gmail. Further discussion of this in [this issue](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fdevise_token_auth\u002Fissues\u002F969).\n\nWe have some bounties for some issues, [check them out](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fdevise_token_auth\u002Fissues?q=is%3Aopen+is%3Aissue+label%3Abounty)!\n\n## Live Demos\n\n[Here is a demo](https:\u002F\u002Fstackblitz.com\u002Fgithub\u002Fneroniaky\u002Fangular-token) of this app running with the [Angular-Token](https:\u002F\u002Fgithub.com\u002Fneroniaky\u002Fangular-token) service and [Angular](https:\u002F\u002Fgithub.com\u002Fangular\u002Fangular).\n\nThe fully configured api used in these demos can be found [here](https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fdevise_token_auth_demo).\n\n\n## Contributors\n\n\u003Ca href=\"graphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fcontributors.svg?width=890&button=false\" \u002F>\u003C\u002Fa>\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth#backer)]\n\n[![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fbackers.svg?width=890)](https:\u002F\u002Fopencollective.com\u002Fdevise_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:\u002F\u002Fopencollective.com\u002Fdevise_token_auth#sponsor)]\n\n[![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F0\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F0\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F1\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F1\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F2\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F2\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F3\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F3\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F4\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F4\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F5\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F5\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F6\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F6\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F7\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F7\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F8\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F8\u002Fwebsite) [![](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F9\u002Favatar.svg)](https:\u002F\u002Fopencollective.com\u002Fdevise_token_auth\u002Fsponsor\u002F9\u002Fwebsite)\n\n## License\nThis project uses the WTFPL\n","Devise Token Auth 是一个基于令牌的认证解决方案，专为 Rails JSON API 设计。它支持多客户端安全认证，通过每次请求刷新令牌并在短时间内过期来确保安全性，同时为每个客户端\u002F设备维护独立会话。该项目集成了多种前端框架如 AngularJS、Angular、React 与 Redux 等，并支持 OAuth2 和电子邮件认证方式，包括用户注册、登录、密码重置等功能。适用于需要构建单页应用或移动应用程序并要求实现安全认证机制的场景。",2,"2026-06-11 03:14:38","top_language"]