strapi/docs/.vuepress/dist/assets/js/25.21c9a549.js
2018-10-05 17:24:17 +02:00

1 line
13 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{214:function(t,s,a){"use strict";a.r(s);var n=a(0),e=Object(n.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"content"},[t._m(0),t._v(" "),a("p",[t._v("Most of the web applications require a user management system: registration, login,\nreset password, etc.")]),t._v(" "),a("p",[t._v("To avoid you to reinvent the wheel, Strapi embedded a full featured user management\nsystem powered by "),a("a",{attrs:{href:"https://github.com/simov/grant",target:"_blank",rel:"noopener noreferrer"}},[t._v("Grant"),a("OutboundLink")],1),t._v(" and JSON Web Token (JWT).")]),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),a("p",[t._v("Request payload:")]),t._v(" "),t._m(3),a("p",[t._v("Response payload:")]),t._v(" "),t._m(4),t._m(5),t._v(" "),t._m(6),t._v(" "),a("p",[t._v("Request payload:")]),t._v(" "),t._m(7),a("p",[t._v("Response payload:")]),t._v(" "),t._m(8),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),a("p",[t._v("Thanks to "),a("a",{attrs:{href:"https://github.com/simov/grant",target:"_blank",rel:"noopener noreferrer"}},[t._v("Grant"),a("OutboundLink")],1),t._v(" and "),a("a",{attrs:{href:"https://github.com/simov/purest",target:"_blank",rel:"noopener noreferrer"}},[t._v("Purest"),a("OutboundLink")],1),t._v(", you can easily use OAuth and OAuth2\nproviders to enable authentication in your application. By default,\nStrapi comes with four providers:")]),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15),t._v(" "),t._m(16),t._v(" "),a("p",[t._v("Response payload:")]),t._v(" "),t._m(17),t._m(18),t._v(" "),a("p",[t._v("Strapi comes with 5 providers. If you want to add another one, it can be easily done thanks to "),a("a",{attrs:{href:"https://github.com/simov/purest",target:"_blank",rel:"noopener noreferrer"}},[t._v("Purest"),a("OutboundLink")],1),t._v(", by adding it in the Grant service.")]),t._v(" "),t._m(19),t._v(" "),t._m(20),t._v(" "),a("p",[t._v("Request payload:")]),t._v(" "),t._m(21),t._m(22),t._v(" "),t._m(23),t._v(" "),a("p",[t._v("Request payload:")]),t._v(" "),t._m(24),a("p",[t._v("Response payload:")]),t._v(" "),t._m(25),t._m(26),t._v(" "),t._m(27)])},[function(){var t=this.$createElement,s=this._self._c||t;return s("h1",{attrs:{id:"users"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#users","aria-hidden":"true"}},[this._v("#")]),this._v(" Users")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"local-registration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#local-registration","aria-hidden":"true"}},[this._v("#")]),this._v(" Local Registration")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Route used to register a user to your application: "),s("code",[this._v("POST /auth/local/register")]),this._v(".")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"username"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"John DOE"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"email"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"contact@company.com"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"password"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"123456"')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"user"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"jwt"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('""')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"local-login"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#local-login","aria-hidden":"true"}},[this._v("#")]),this._v(" Local Login")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Route used to login a user to your application: "),s("code",[this._v("POST /auth/local")]),this._v(".")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"identifier"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"contact@company.com"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"password"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"123456"')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"user"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"jwt"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('""')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"authentication"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#authentication","aria-hidden":"true"}},[this._v("#")]),this._v(" Authentication")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("JWT does not use session. Once you get the token, it has to be stored in front (for\nexample in the "),s("code",[this._v("localstorage")]),this._v("), and sent within each request. The token can be sent:")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ul",[a("li",[t._v("in the header ("),a("code",[t._v("Bearer")]),t._v(")")]),t._v(" "),a("li",[t._v("in the body ("),a("code",[t._v("token")]),t._v(" field)")]),t._v(" "),a("li",[t._v("in the querystring ("),a("code",[t._v("token")]),t._v(" field)")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"providers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#providers","aria-hidden":"true"}},[this._v("#")]),this._v(" Providers")])},function(){var t=this.$createElement,s=this._self._c||t;return s("ul",[s("li",[this._v("Facebook")]),this._v(" "),s("li",[this._v("Google")]),this._v(" "),s("li",[this._v("Github")]),this._v(" "),s("li",[this._v("Linkedin2 (Oauth2 Provider for Linkedin)")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("To use the providers authentication, set your credentials in\n"),s("code",[this._v("./api/user/config/environments/development/grant.json")]),this._v(".")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Redirect your user to: "),s("code",[this._v("GET /connect/:provider")]),this._v(".")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("After his approval, he will be redirected to "),s("code",[this._v("/auth/:provider/callback")]),this._v(". The jwt and user will be available in the querystring.")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"user"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"jwt"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('""')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"custom-providers"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#custom-providers","aria-hidden":"true"}},[this._v("#")]),this._v(" Custom providers")])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"forgot-password"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#forgot-password","aria-hidden":"true"}},[this._v("#")]),this._v(" Forgot password")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("Send an email to the user with an activation code: "),s("code",[this._v("POST /auth/forgot-password")]),this._v(".")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"email"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"contact@company.com"')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"change-password"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#change-password","aria-hidden":"true"}},[this._v("#")]),this._v(" Change password")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v('Route used to update the password of a user after he asked for a\n"forgot-password" email: '),s("code",[this._v("POST /auth/change-password")]),this._v(".")])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"code"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('""')]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"password"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"123456"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"passwordConfirmation"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('"123456"')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"user"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{attrs:{class:"token string"}},[t._v('"jwt"')]),a("span",{attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{attrs:{class:"token string"}},[t._v('""')]),t._v("\n"),a("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("h2",{attrs:{id:"accessing-user-from-requests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#accessing-user-from-requests","aria-hidden":"true"}},[this._v("#")]),this._v(" Accessing user from requests.")])},function(){var t=this.$createElement,s=this._self._c||t;return s("p",[this._v("If you want to access attributes of the logged in user, you can use "),s("code",[this._v("this.user")]),this._v(" inside of your controller action.")])}],!1,null,null,null);e.options.__file="users.md";s.default=e.exports}}]);