summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2017-01-06 01:28:16 +0900
committersyuilo <syuilotan@yahoo.co.jp>2017-01-06 01:28:16 +0900
commitfa591e5c9b27752bbe55c28cb3f7f798558104a6 (patch)
tree8947921f71eec8db8fbcc47c3c4f0d0103ffc1ac
parentFix bug (diff)
downloadsharkey-fa591e5c9b27752bbe55c28cb3f7f798558104a6.tar.gz
sharkey-fa591e5c9b27752bbe55c28cb3f7f798558104a6.tar.bz2
sharkey-fa591e5c9b27752bbe55c28cb3f7f798558104a6.zip
アクセストークンは i に統一
トークンの先頭に ! がプリフィックスされているかどうかでユーザー固有のトークンかどうか判別する
-rw-r--r--docs/api/getting-started.pug2
-rw-r--r--src/api/authenticate.ts21
-rw-r--r--src/api/private/signup.ts2
3 files changed, 12 insertions, 13 deletions
diff --git a/docs/api/getting-started.pug b/docs/api/getting-started.pug
index 8e6e6b4f47..f565745232 100644
--- a/docs/api/getting-started.pug
+++ b/docs/api/getting-started.pug
@@ -71,4 +71,4 @@ block content
br
| 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
- p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>_userkey</code>(「自分のアクセストークンを取得したい場合」の方法で取得したアクセストークンの場合は<code>i</code>)としてパラメータに含めるだけです。
+ p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>i</code>としてパラメータに含めるだけです。
diff --git a/src/api/authenticate.ts b/src/api/authenticate.ts
index 5798adb83d..16a7ee1b45 100644
--- a/src/api/authenticate.ts
+++ b/src/api/authenticate.ts
@@ -20,10 +20,14 @@ export interface IAuthContext {
isSecure: boolean;
}
-export default (req: express.Request) =>
- new Promise<IAuthContext>(async (resolve, reject) => {
- const token = req.body['i'];
- if (token) {
+export default (req: express.Request) => new Promise<IAuthContext>(async (resolve, reject) => {
+ const token = req.body['i'] || req.body['_userkey']; // そのうち_userkeyは削除
+
+ if (token == null) {
+ return resolve({ app: null, user: null, isSecure: false });
+ }
+
+ if (token[0] == '!') {
const user = await User
.findOne({ token: token });
@@ -36,12 +40,9 @@ export default (req: express.Request) =>
user: user,
isSecure: true
});
- }
-
- const userkey = req.headers['userkey'] || req.body['_userkey'];
- if (userkey) {
+ } else {
const userkeyDoc = await Userkey.findOne({
- key: userkey
+ key: token
});
if (userkeyDoc === null) {
@@ -56,6 +57,4 @@ export default (req: express.Request) =>
return resolve({ app: app, user: user, isSecure: false });
}
-
- return resolve({ app: null, user: null, isSecure: false });
});
diff --git a/src/api/private/signup.ts b/src/api/private/signup.ts
index c50b070052..592dfcceb1 100644
--- a/src/api/private/signup.ts
+++ b/src/api/private/signup.ts
@@ -48,7 +48,7 @@ export default async (req: express.Request, res: express.Response) => {
const hash = bcrypt.hashSync(password, salt);
// Generate secret
- const secret = rndstr('a-zA-Z0-9', 32);
+ const secret = '!' + rndstr('a-zA-Z0-9', 32);
// Create account
const inserted = await User.insert({