我正在尝试为项目制作API。我按照此视频中的说明进行操作 - https://www.youtube.com/watch?v=lgdUqtw4weg&t=165s
基本上在视频中,我为用户模型创建了一个标记列。并设置控制器,以便我可以使用post方法。 但是当我运行POST时。 我收到错误说
{"error":"You need to sign in or sign up before continuing."}
我认为Devise正在干扰POST,并且在尝试访问非公共页面时发现用户尚未登录。
如何通过此获取令牌?
这是我的api控制器。
class Api::V1::UserSerializedController < ApplicationController
protect_from_forgery except: :index
respond_to :json
def create
user = User.where(email: params[:email]).first
if user.valid_password?(params[:encrypted_password])
render json: user.as_json(only: [:email, :authentication_token]),status: :created
else
head(:unauthorized)
end
end
def show
end
end
答案 0 :(得分:0)
您继承authenticate_user!
并且我猜测您在行动之前设置了ApiController
。
您必须将父类更改为Api::V1::UserSerializedController
(我更喜欢这个)
OR
跳过 <script>
// takes the form field value and returns true on valid number
function valid_credit_card(value) {
// accept only digits, dashes or spaces
if (/[^0-9-\s]+/.test(value)) return false;
// The Luhn Algorithm. It's so pretty.
var nCheck = 0, nDigit = 0, bEven = false;
value = value.replace(/\D/g, "");
for (var n = value.length - 1; n >= 0; n--) {
var cDigit = value.charAt(n),
nDigit = parseInt(cDigit, 10);
if (bEven) {
if ((nDigit *= 2) > 9) nDigit -= 9;
}
nCheck += nDigit;
bEven = !bEven;
}
return (nCheck % 10) == 0;
}
console.log(valid_credit_card("5610591081018250"),"valid_credit_card Validation");
</script>