#play-oauth-server
OAuth 2 server implemented using:
- OAuth 2
- OAuth 2: Bearer Token Usage
- Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants
- JSON Web Token (JWT)
- JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants
- jdk 8
- scala 2.11.x & sbt 0.13.8
- Intellij + scala plugin
- couchbase 4.0
- 4.0
- enable query & index service
- remove default bucket, then create a bucket named
pk
with password as in file application.conf
- run
cbq
- see n1ql-guide
/* `1` is pk.auth.CBType.TUser */
CREATE INDEX acc_by_email ON pk(email) WHERE tpe = 1 USING GSI;
/* `3` is pk.auth.CBType.TToken */
CREATE INDEX refresh_token ON pk(refreshToken) WHERE tpe = 3 USING GSI;
SELECT * FROM system:indexes;
EXPLAIN
SELECT pk.* FROM pk USE INDEX (acc_by_email USING GSI)
WHERE email LIKE 'abc@%' AND tpe = 1;
some other syntax:
DROP INDEX pk.acc_by_email USING GSI;
CREATE PRIMARY INDEX ON pk USING GSI;
DROP PRIMARY INDEX ON pk USING GSI;