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({