如何使用访问/授权令牌?
我已经构建了我应该安装在Shopify
商店中的第一个Node.js
应用程序。 如果你想看看我的实际代码是什么样的(app.js),你可以在这里查看它。 这是非常基本的,所以阅读并不难。
我知道如何验证应用程序的安装 (遵循Shopify说明),但我不知道如何使用成功安装为我提供的永久access token
验证所有后续请求 。
通过后续请求,我指的是呈现应用或请求安装应用的请求,即使应用已安装。
现在,我将店铺名称(这是唯一的)以及Shopify在我的数据库中发送给我的永久令牌存储起来。 但我不知道这是否有必要 。 如果我没有弄错, 只需使用浏览器的会话就可以了? 但我该怎么做? 我怎么在每次请求到来时使用这个令牌来检查它是否有效?
感谢您的任何帮助/建议!
下面的代码是我的实际代码看起来像是为了让你知道我的问题是什么:
db.once('open', function(callback)
{
app.get('/', function (req, res)
{
var name = getNameFrom(req);
if (existsInDB(name) && tokenExistsInDBfor(name))
{
res.redirect('/render');
/*
Is checking that the shop (along with a permanent token)
exists in my DB enough ?
Shouldn't I check whether the current request comes with
a token that is equal to the one in my DB ?
What if the token received with this request is different
from the one stored in my DB ?
*/
}
else res.redirect('/auth');
});
app.get('/auth', function (req, res)
{
if (authenticated(req))
{
var token = getPermanentToken();
storeItInDB(nameFrom(req), token);
res.redirect('/render');
/*
aren't I supposed to do anything more
with the token I've received ? send it
back/store it in the browser session as well maybe?
is storing it in the db necessary ?
*/
}
});
app.get('/render', function (req, res)
{
/*
How do I check that this request is coming
from an authorised shop that has the necessary token ?
Simply checking my DB will not do
because there might be some inconsistency correct ?
*/
res.sendFile(*file that will build app on the client*);
});
});
从Shopify获取access token
是一次性的过程。
将access token
和shop's name
保存在您的数据库中,并且还基于某种算法生成并保存“授权令牌”。 将生成的授权令牌返回给客户端。 确保客户端在每个请求中都发送此身份验证令牌。
现在,当客户端打你的服务器验证身份验证令牌; 一旦通过验证,就可以使用适当的“访问令牌”和商店名称致电Shopify API。
身份验证流程可能如下所示:
验证流程:
希望这种方法有帮助
链接地址: http://www.djcxy.com/p/22005.html上一篇: How to use access / auth tokens?
下一篇: how shall we implement the login functionality with python