APIを公開するアプリを書いています。このアプリケーションを使用すると、ユーザーはワークスペースを作成してユーザーを追加できます。各ユーザーは一意のトークンを持ちます。API呼び出しを行うとき、そのトークンを使用します(これにより、そのワークスペースを使用しているユーザーとして識別されます。
現在、私はこれを行っています:
var w = new Workspace(); // This is a mongoose model
w.name = req.body.workspace;
w.activeFlag = true;
crypto.randomBytes(16, function(err, buf) {
if(err){
next(new g.errors.BadError503("Could not generate token") );
} else {
var token = buf.toString('hex');
// Access is the list of users who can access it. NOTE that
// the token is all they will pass when they use the API
w.access = { login: req.session.login, token:token, isOwner: true };
w.save( function(err){
if(err){
next(new g.errors.BadError503("Database error saving workspace") );
これはAPIトークンを生成するための良い方法ですか?
トークンは名前+ワークスペースなので、md5(ユーザー名+ワークスペース+シークレット文字列)のようなことをする必要があります...?