Commit Graph

131 Commits

Author SHA1 Message Date
Iain Collins
52f2dd5c32 Add JS wrapper to CSS to support Serverless target
Resolves #281
2020-06-21 15:07:01 +01:00
Iain Collins
758b3a88d0 Update beta version to 85 2020-06-21 04:43:13 +01:00
Iain Collins
fd8818c400 Add callbackUrl option to client methods
Resolves  #208

Also address fetchData not returning a promise when it should.
2020-06-21 02:26:34 +01:00
Iain Collins
5929de4249 Remove babel-preset-minify
It made debugging harder and I don't think it's currently worth the tradeoff.

In future we might bring it back conditionally (e.g. prod builds only).
2020-06-21 01:54:18 +01:00
Iain Collins
07c6cbccc0 Update beta version to 83 2020-06-21 01:44:41 +01:00
Iain Collins
75638db676 Bump beta version to 82 2020-06-20 11:58:28 +01:00
Iain Collins
eb49a47b0a Bump beta version to 81; hotfix for sqlite
Includes hot fix for SQLite transform.

It was not updated to support column name changes.

The fix applies the transform without relying on hard coded values so bug won't happen again.
2020-06-20 09:27:28 +01:00
Iain Collins
515facf39f Add support for mongodb+srv URLs 2020-06-20 08:23:02 +01:00
Iain Collins
b893b6485b Refactor db tests an update docs 2020-06-19 08:28:35 +01:00
Iain Collins
0686b5ff32 Bump beta version to 78 2020-06-15 08:58:10 +01:00
Iain Collins
1f4bc91d87 Add limited support for credentials sign in 2020-06-15 04:01:52 +01:00
Iain Collins
e54bf254cb Bump beta version to 76 2020-06-15 01:09:03 +01:00
Iain Collins
18c99616b3 Bump beta version to 75 2020-06-15 00:03:06 +01:00
Iain Collins
554c32c6f1 Refactoring naming strategy
Not a breaking change, just a refactor!

* Removes dependency on external library
* Resolves problem of messy logic in models and transform by putting it all in a naming strategy
* No change to table / collection schemas!
2020-06-14 14:15:28 +01:00
Iain Collins
7a0624b8db HOTFIX for sqlite schema transform 2020-06-14 04:13:26 +01:00
Iain Collins
f3532ebef2 Update models to use better table/collection names
* Use plural table/collection names
* Use snake_case on SQL
* Use camelCase on Document DB
* Updated docs
2020-06-14 03:50:22 +01:00
Iain Collins
5e9f392ba8 Bump beta version to 72 2020-06-14 03:50:22 +01:00
Iain Collins
5cf0056e69 Add script to extract schema from databases 2020-06-14 03:50:22 +01:00
Iain Collins
ac12d6a6e2 Add database drivers as devDependencies for testing 2020-06-14 03:50:22 +01:00
Iain Collins
cc0c15e37c Refactor models and schemas 2020-06-14 03:50:22 +01:00
Iain Collins
d30b112d71 Add getProfileFromToken option 2020-06-12 02:08:43 +01:00
Iain Collins
156c8e1e97 Make email addresses optional when signin in 2020-06-11 13:10:59 +01:00
Iain Collins
416785941b Added JWT helper method 2020-06-09 09:44:35 +01:00
Nicola Molinari
0918cdbfa0 fix: missing file export jwt.js in npm release 2020-06-08 14:45:01 +01:00
Iain Collins
077f60e7c4 Allow session.get callback to use data from JWT 2020-06-08 12:25:01 +01:00
Iain Collins
96900e77f6 Fix typos in README 2020-06-08 10:56:17 +01:00
Iain Collins
0d825bbc39 Refactor JWT, Sessions and add allowSignin() method (#223)
## Database

- [x] Databases are now optional - useful with OAuth + JWT if you only need access control
- [x] Updated documentation and added example code for custom database adapters

## JWT

- [x] JWT option is now an object that groups JWT related options together (was a boolean)
- [X] Refactored JWT lib and add AES encryption / decryption as well as signing / verification
- [x] Allows JWT encode/decode methods to be overridden as options
- [x] Contents of JWT can easily customised - without needing to use custom encode/decode
- [x] Exported JWT methods so they can be called from custom API routes
- [x] Updated documentation for new JWT options

## Sessions

- [x] All session options (eg. `maxAge`, `updateAge`) now grouped under single `session` option
- [x] Using JWT for sessions is now enabled from session object (`session.jwt: true`)
- [x] All options involving time now use seconds (instead of milliseconds) for consistency
- [x] Added option to customise the Session object that is returned from `/api/auth/session`
- [x] Update documentation for new Session options

## Other improvements

- [x] Added `allowSignin()` option to control what users / accounts are allowed to sign in
- [x] Refactored `callbackUrlHandler()` - this option  is now called `allowCallbackUrl()` 
- [x] Minor improvements to NextAuth.js client API methods
- [x] Minor to NextAuth.js API routes
- [x] Minor improvements to built-in error pages
- [x] Refactored database models
   All tables now include a `created` column for each row which contains the `datetime` of when the row (e.g. User / Account / Session) was created.
  Additionally, sessions now use the name 'expiry' for the expiry `datetime` value for consistency with other models.
2020-06-08 04:01:21 +01:00
Iain Collins
50039e5a6b Bump beta version to 62
This includes the OKTA provider and an improved README.
2020-06-06 03:02:10 +01:00
Iain Collins
315d75e40b Fix bug parsing hostname from database URL
Resolves #200
2020-06-03 22:01:37 +01:00
Iain Collins
50b9743bb6 HOTFIX for incorrect params to createSession
Resolves #197
2020-06-03 09:14:51 +01:00
Iain Collins
ceb35cd036 Add JWT session support
* Now has jwt and jwtSecret options
* Set jwt: true to use JWT instead of DB for session
* Enable 'debug: true' to log JWT_SESSION_TOKEN to console if you want to see what it contains
* Magical!
2020-06-03 04:41:43 +01:00
Iain Collins
6df7322493 Fix bug in Apple provider 2020-06-01 17:48:06 +01:00
Iain Collins
8a2ee7cbce HOTFIX CSS on signin page in Chome 2020-06-01 13:33:52 +01:00
Iain Collins
a465e2cda8 Improve styling on built-in pages
Improved font usage and button apperance.
2020-06-01 13:24:11 +01:00
Iain Collins
81c22f81ca Bump beta version number 2020-06-01 12:24:45 +01:00
Iain Collins
e993bc4f2a Bump beta version number 2020-06-01 04:03:44 +01:00
Iain Collins
59403ec607 Refactor Apple provider to genereate secret dynamically
See #176
2020-06-01 02:20:29 +01:00
Iain Collins
9d2d7133a1 Bump beta version number 2020-06-01 01:06:44 +01:00
Iain Collins
b39d491df3 Rename tests dir to test (more conventional) 2020-06-01 01:06:44 +01:00
Iain Collins
39e97c3b96 Restructure and extend documentation
Includes some minor tweaks to options to match documentation (non breaking changes).
2020-05-31 05:15:39 +01:00
Gerald Nolan
fd6fceb884 Sign In with Apple 2020-05-27 14:30:15 +01:00
Iain Collins
981984b562 Improve database URI handling
* Fix bug in parser (.query -> search)
* Comments to explain what is going on
* Fallback to TypeORM parser
2020-05-26 17:48:04 +01:00
Iain Collins
1e9053d879 Add support for passing URL to 'database' option
* Database configuration now only needs a single line!
* You can still specify options using query string parameters.
* You can still specify an object, so this is not a breaking change.
2020-05-26 13:19:47 +01:00
Iain Collins
d112800b98 Add custom pages
Now supports 'pages' option, which can be any URL.

If specified, these replace the built in pages.

Example usage:

pages: {
  signin: 'https://example.com/signin',
  signout: 'https://example.com/signout',
  checkEmail: 'https://example.com/check-email',
  error: 'https://example.com/error'
}
2020-05-26 01:02:02 +01:00
Iain Collins
c8bf342d8b Fix sqlite support 2020-05-25 21:43:50 +01:00
Iain Collins
63ceb1a260 Don't lookup session if session token empty 2020-05-25 21:24:45 +01:00
Iain Collins
2f16d8448d Fix issues with database; make it easier to test
These changes fix compatibility issues with common SQL databases including MySQL, MariaDB and Postgres.

* Fixes #147 - datetime now ANSI SQL timestamp
* Fixes #160 - AccessToken and RefreshToken type change from varchar to text
* Adds Docker Compose files to make it easier to test database integration.

TODO:

* Update documentation with configuration examples and latest compatibility info
* Create DB URI parser (currently only object config works)
* Database table/collection name prefix (will default to `next-auth_`)
* MongoDB support

MongoDB has some issues which mean it will require additional work and refactoring to support (while preserving SQL DB support, which is important).

It's going to take some thinking about to get right; MongoDB support might have to be dropped from 2.0 (and follow in a subsequent release) but I'm going to review options and consider the impact before making a call.
2020-05-25 18:15:33 +01:00
Iain Collins
74b334f7ad Fix default exports in entrypoints
Resolves #157
2020-05-25 12:11:35 +01:00
Iain Collins
bc6fd4aa32 Bump version number to beta 43 2020-05-23 03:56:54 +01:00
Iain Collins
cf8e6980be Simplify database configuration
* Now accepts 'database' as an option as an alterantive to 'adapter'.
* If specified, 'database' can be a string or object and will load the default adapter.
* The 'adapter' option is still valid, and overrides the 'database' option.

 If neither option is specified, displays console error and web error page.
2020-05-21 20:51:58 +01:00